inherited_resources给出了错误resource_path



我正在使用 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::ConferencesControllerBackend::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不应该能够找到正确的路径吗?

谢谢!

好的,通过将belongs_to :conference添加到SponsorsController中已经解决了问题:

class Backend::SponsorsController < Backend::ResourceController
  belongs_to :conference
end

现在路由按预期生成! :)

相关内容

  • 没有找到相关文章

最新更新