我正在使用Rails 3.2.16和inherited_resources 1.4.1。我需要一个快速的广告自定义管理员,所以我使用这篇文章作为示例(它仍然适用于rails 3.2):
http://iain.nl/backends-in-rails-3-1
这是我的路线文件的样子:
namespace :backend do
root to: 'conferences#index'
resources :conferences do
resources :talks
resources :sponsors
end
end
我的Backend::ConferencesController
和Backend::SponsorsController
他们都从Backend::ResourceController
继承,详见博客文章。
我发现的问题是每当我转到Sponsors
索引页面时,我都会得到NoMethodError
:
NoMethodError: undefined method `backend_sponsor_path' for #<Backend::SponsorsController:0x007fa588113e08>
奇怪的是,resource_path
方法试图找到路由中声明的backend_sponsor_path
而不是backend_conference_sponsor_path
。
有谁知道如何解决这个问题? inherited_resources
不应该找到正确的路径吗?
谢谢!
答案 0 :(得分:0)
好的,问题已通过belongs_to :conference
添加SponsorsController
来解决:
class Backend::SponsorsController < Backend::ResourceController
belongs_to :conference
end
现在按预期生成路线! :)