【发布时间】:2011-02-05 22:04:04
【问题描述】:
我的 routes.rb 中有这样的嵌套资源 - (my rake:routes gist)
namespace(:admin) do
resources :restaurants do
resources :menus
resources :menu_items
end
end
在控制器中:
def new
@restaurant = Restaurant.find(params[:restaurant_id])
@menu_item = @restaurant.menu_items.build
end
尝试通过 url:http://127.0.0.1:3001/admin/restaurants/1/menu_items/new 创建一个新的 MenuItem(操作 #new)我收到错误:
NoMethodError in Admin/menu_items#new
Showing /home/fps/workspace3/peded/app/views/admin/menu_items/_form.html.erb where line #1 raised:
undefined method `admin_menu_items_path' for #<#<Class:0xb6582d78>:0xb6581f2c>
Extracted source (around line #1):
1: <%= form_for @menu_item do |f| %>
...
如何使此表单起作用?它是由一个漂亮的:脚手架创建的
更新
我也在_form中试过这个:
<%= form_for [:restaurant, @menu_item] do |f| %>
但以类似的错误结束:
Showing /home/fps/workspace3/peded/app/views/admin/menu_items/_form.html.erb where line #1 raised:
undefined method `restaurant_admin_menu_items_path' for #<#<Class:0xb68162b0>:0xb6813dd0>
Extracted source (around line #1):
1: <%= form_for [:restaurant, @menu_item] do |f| %
我应该提交错误吗?
【问题讨论】:
-
这个问题你解决了吗?命名空间 admin 中的嵌套资源应创建路由 admin_restaurant_admin_menu_items_path,但创建路由 admin_restaurant_menu_items_path。如果你脚手架 admin/menu,控制器中已经设置了 :admin 命名空间这一定是 rails 中的错误?
-
@bandola 我问过 /ryanb,他指出这很可能是一个错误
-
@FabianoPS:有什么消息吗?仍然收到与您相同的错误消息!
-
仍然没有在网上找到干净的解决方案...
标签: ruby-on-rails-3 routes form-for