我使用的是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不应该找到正确的路径吗?
谢谢!
发布于 2014-01-03 11:33:59
好的,通过将belongs_to :conference添加到SponsorsController中已经解决了问题
class Backend::SponsorsController < Backend::ResourceController
belongs_to :conference
end现在,按预期生成路由!:)
https://stackoverflow.com/questions/20902533
复制相似问题