我在尝试配置rails以使用"admin"命名空间路由管理非管理员模型时遇到问题。例如,Widget
模型通常在/widgets
上有一个RESTful路由,其中有一个名为WidgetsController
的控制器,我有一个路由文件,为路由和控制器命名:
namespace :admin do
resources :widgets
end
class Admin::WidgetsController < ApplicationController
def index
@widgets = ::Widget.all
respond_to do |format|
format.html
end
end
...etc...
end
在视图中,当我尝试使用创建的路由方法时,我得到了一个错误:
<% @widgets.each do |widget| %>
<%= link_to 'Show', admin_widget(widget) %>
<% end %>
错误:
undefined method `admin_widget'
我做错了什么?
方法名称末尾缺少path
。应该是:
admin_widget_path(widget)
而不是admin_widget