2013-08-21 80 views
0

我想在我的Rails應用程序中安裝Forem。我將它添加到我的Gemfile並正確安裝。然而,每當我嘗試在Forem的控制下加載一個頁面(比如「/ forums」)時,我會在與非Forem路由的鏈接上獲得NoMethodError。這些鏈接是包含在我的application.html.erb部分頭,稱爲_header.html.erbRails Forem引擎路由不工作

<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' 

錯誤:

NoMethodError in Forem::Forums#index

undefined method `forem_path' for #<#:0x000000031583c8>

等了所有其他鏈接:

NoMethodError in Forem::Forums#index

undefined method `events_path' for #<#:0x000000031583c8>

NoMethodError in Forem::Forums#index

undefined method `roster_path' for #<#:0x000000031583c8>

這必須做一些routes.rb的範圍,但我不知道如何讓這些鏈接再次工作。

回答

8

我還沒有使用過Forem,但是我有同樣的Monologue問題。我認爲這將有助於你的頭文件中的鏈接指定它們是main_app的一部分。例如:

原文鏈接根路徑可能是:

root_path 

,現在應該是:

main_app.root_path 

這樣做的原因是,培訓就業部Rails的引擎是一個獨立的Rails應用程序,沒有前綴的鏈接只能在當前的Rails應用程序(主應用程序,在這種情況下)內工作。

+0

注意,我不確定使用的語法應該是什麼樣子:root而不是root_path。但是我上面的例子應該可以工作,如果你把它改成root_path(等剩下的路徑),然後把main_app。在每個人面前。 – Josh

+0

這工作,謝謝。 – Polyov