我正在尝试在我的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
的范围做些什么,但我不确定如何让这些链接再次运行。
答案 0 :(得分:8)
我没有使用过Forem,但我和Monologue有同样的问题。我认为如果标题中的链接指定它们是main_app的一部分,它将有所帮助。示例:
根路径的原始链接可能是:
root_path
现在应该是:
main_app.root_path
原因是Forem Rails引擎是一个单独的Rails应用程序,没有前缀的链接只能在当前的Rails应用程序(在这种情况下是主应用程序)中工作。