Rails Forem Engine路由不起作用

时间:2013-08-21 19:32:25

标签: ruby-on-rails ruby routes ruby-on-rails-4

我正在尝试在我的rails应用程序中安装Forem。我将它添加到我的Gemfile并正确安装。但是,每当我尝试在Forem的控制下加载页面(例如“/ forums”)时,我会在非Forem路径的链接上获得NoMethodError。这些链接位于我的application.html.erb中的部分标题中,名为_header.html.erb

<div id="nav">
    <div id="nav-wrapper">
    <%= link_to raw("<div>Home</div>"), :root %>
    <%= link_to raw("<div>Forums</div>"), :forem %>
    <%= link_to raw("<div>Events</div>"), :events %>
    <%= link_to raw("<div>Applications <b class='carat'>▼</b></div>"), "#"%> 
    <%= link_to raw("<div>Reports <b class='carat'>▼</b></div>"), "#"%> 
    <%= link_to raw("<div>Tutorials</div>"), "#"%>
    <%= link_to raw("<div>Rules</div>"), '#'%>
    <%= link_to raw("<div>Roster</div>"), :roster %>
    <%= link_to raw("<div>Donations</div>"), '#'%>
    <%= link_to raw("<div>Media Center <b class='carat'>▼</b></div>"), '#'%> 
    <%= link_to raw("<div>L.O.A</div>"), '#'%>
</div>

routes.rb

mount Forem::Engine, :at => '/forums'  
resources :events
resources :news
devise_for :users
get 'roster' => "users#roster"
get 'news' => "news#index"
get 'profile/:user' => "users#profile", :as => :user_path
root 'news#index'

错误:

  

Forem中的NoMethodError ::论坛#index

     

#&lt;#:0x000000031583c8&gt;

的未定义方法`forem_path'

等所有其他链接:

  

Forem中的NoMethodError ::论坛#index

     

#&lt;#:0x000000031583c8&gt;

的未定义方法`events_path'      

Forem中的NoMethodError ::论坛#index

     

#&lt;#:0x000000031583c8&gt;

的未定义方法`roster_path'

这必须对routes.rb的范围做些什么,但我不确定如何让这些链接再次运行。

1 个答案:

答案 0 :(得分:8)

我没有使用过Forem,但我和Monologue有同样的问题。我认为如果标题中的链接指定它们是main_app的一部分,它将有所帮助。示例:

根路径的原始链接可能是:

root_path

现在应该是:

main_app.root_path

原因是Forem Rails引擎是一个单独的Rails应用程序,没有前缀的链接只能在当前的Rails应用程序(在这种情况下是主应用程序)中工作。