Rails:在嵌套路由

时间:2016-08-31 10:58:48

标签: ruby-on-rails ruby routing rails-engines

我正在尝试在同一个应用中的两个不同点安装引擎。

第一点,正在工作,在根级别'localhost:3000 / news'。

第二个是深度资源,所需的网址结构如下:'localhost:3000 / venues / 1 / news'。这不起作用。

我正在主机应用程序路由文件中初始化引擎,如此

  mount NewsEngine::Engine => "/" 
  resources :venues do
    mount NewsEngine::Engine => "/" 
  end

然而,运行rake路线只会产生第一级路线。

newsitems GET  /news(.:format)              news_engine/newsitems#index                                       
 newsitem GET  /news/:newsitem_id(.:format) news_engine/newsitems#show 

奇怪的是,即使是第一级引用也会引发错误:

=link_to "News", intertain_news_engine.newsitems_path
=> No route matches {:action=>"index"} missing required keys: [:venue_id]

我希望此错误尝试拨打venue_newsitems_path而不是newsitems_path

引擎本身的路由文件如下所示。

NewsEngine::Engine.routes.draw do
  resources :newsitems, param: :newsitem_id,
                        only: [:index, :show],
                        path: 'news'

end

使用主机应用程序中的配置块检索场地,该配置块告诉引擎从主机应用程序控制器调用before_action方法 - 虽然我看不出这会是一个什么问题,因为它目前似乎完全取决于路由。

0 个答案:

没有答案