我有一个表单标签,如下所示,当我试图运行页面时,我得到错误:没有路由匹配{:action=>"create",:type=>"new",:controller=>"lists"}
<%= form_for @list, :url => {:action => "create", :type => "new"}, :html => {:multipart => true,:role=>"form"} do |f| %>
在我的路由文件中我有一行——resources :lists
我认为上面的路由文件应该为我创建正确的路由。
url选项需要一个控制器,如果你要这样格式化的话…url_for中没有type选项。所以它应该看起来像这样:
<%= form_for @list, :url => {:controller => 'lists', :action => "create"}, :html => {:multipart => true,:role=>"form"} do |f| %>
或者没有哈希火箭:
<%= form_for @list, url: { controller: 'lists', action: "create" }, html: { multipart: true, role: "form"} do |f| %>
检查方法,create必须通过POST发送
<%= form_for @list, as: :list :url => lists_path, method: :post do |f| %>