我在尝试使用'admin'命名空间路由配置rails来管理非管理模型时遇到问题。例如,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
在视图中,当我尝试使用route方法创建时,我收到错误:
<% @widgets.each do |widget| %>
<%= link_to 'Show', admin_widget(widget) %>
<% end %>
错误:
undefined method `admin_widget'
我做错了什么?
答案 0 :(得分:0)
我在方法名称末尾缺少path
。应该是:
admin_widget_path(widget)
而不是admin_widget