我正在尝试通过实现一个测试应用程序来学习 Ruby On Rails MVC 框架,我试图在其中创建表单提交和列表记录。我正在使用资源方式在 router.rb 文件中定义到控制器的路由。但是当我尝试使用控制器加载页面时,我遇到了错误,
No route matches
我的路由器文件routes.rb如下所示,
`No route matches [GET] "/new"`
控制器文章_controller.rb
Rails.application.routes.draw do
get "up" => "rails/health#show", as: :rails_health_check
get "service-worker" => "rails/pwa#service_worker", as: :pwa_service_worker
get "manifest" => "rails/pwa#manifest", as: :pwa_manifest
#get 'home/:id', to: 'articles#home'
#get 'details', to: 'articles#details'
#get 'new', to:'articles#new'
resources :articles
end
我的视图文件new.html.erb,
class ArticlesController < ApplicationController
def home
@article = Article.find(params[:id])
end
def details
@articledetails = Article.all
end
def new
end
def create
@article = Article.new(params.require(:article).permit(:title, :description))
@article.save
redirect_to @article
end
end
故障排除方法,
我在项目根目录命令提示符中应用了以下命令。但它没有列出文章路线。
铁路路线——扩展
这里如何根据router.rb定义启用路由?任何人都可以建议或指导我解决此错误吗?或者提供任何文档可供参考吗?
<h1>Create a new article</h1>
<%= form_with scope: :article, url: articles_path, local: true do |f| %>
<p>
<%= f.label :title %><br/>
<%= f.text_field :title %>
</p>
<p>
<%= f.label :description %><br/>
<%= f.text_area :description %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
但应该有
#get 'new', to:'articles#new'
然后你就会有
get 'new', to:'articles#new'
网址
或者如果您想使用/new
那么你在浏览器中的网址应该是resources :articles
(而不是
/articles/new
)