我有一个表单标签,如下所示,当我尝试运行页面时出现错误:没有路由匹配{:action =>"创建",:type =>&# 34; new",:controller =>" list"}
<%= form_for @list, :url => {:action => "create", :type => "new"}, :html => {:multipart => true,:role=>"form"} do |f| %>
在我的路线文件中,我有一行 - resources :lists
我认为路线文件中的上面一行应该为我创建正确的路线。
有人能告诉我我做错了吗?
答案 0 :(得分:1)
如果您要以这种方式格式化事物,则网址选项需要控制器...并且url_for中没有“...”类型选项...所以它应该如下所示:
<%= 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| %>
答案 1 :(得分:0)
检查方法,创建必须通过POST发送
<%= form_for @list, as: :list :url => lists_path, method: :post do |f| %>