routes.rb中:
resources :shops
shop_controller.rb:
def new
@shop=Shop.new
end
new.html.erb:
<%= form_for(@shop) do |f| %>
....
<% end %>
错误: undefined方法`shops_path'代表:
<%= form_for(@shop) do |f| %>
问题是我已经在路线文件中指定了商店资源。 为什么还会出现这种错误?
任何帮助将不胜感激,谢谢
答案 0 :(得分:1)
由于Rails命名约定,您应该使用ShopsController
而不是ShopController
。
答案 1 :(得分:1)
确保rake routes
输出中包含以下这些行:
shops GET /shops(.:format {:action=>"index", :controller=>"shops"}
POST /shops(.:format) {:action=>"create", :controller=>"shops"}
OR
shops POST /shops(.:format) {:action=>"create", :controller=>"shops"}
如果他们不在场,请仔细查看routes.rb
可能的with_options
,scope
或任何其他可能影响resources :shops
的范围,以便它不会生成默认的url助手。
答案 2 :(得分:0)
因为你没有在表单标签中指定方法,我猜它会作为GET请求。尝试将该方法添加到您的表单
<%= form_for(@shop), :method => :post do |f| %>