2013-08-17 64 views
1

我包括施普雷現有的網站。我正在改變使用Deface的狂熱標題來代替我的網站的標題。所以我用下面的污損DSL代碼訪問rails網址幫助程序從deface

<!-- replace_contents "header[data-hook]" --> 
<%= render :partial => "layouts/my_site_header.html.erb" %> 

而且裏面_my_site_header.html.erb我有這樣的事情

<ul> 
    <li><%= link_to "Home", home_path %></li> 
    <li><%= link_to "Game", game_path %></li> 
    <li><%= link_to "Community", community_path %></li> 
</ul> 

這給了我下面的錯誤

undefined local variable or method `home_path' for #<#<Class:0x8a73c20>:0x8af0e58> 

我理解的是,代碼得到執行通過Spree範圍內的Deface,因此我的網站的url助手未定義。我可以解決這個使用完整的方法名稱,如Rails.application.routes.url_helpers.home_path

但是,我真的不想爲所有的鏈接添加這個。沒有辦法告訴Spree包含我網站的網址助手嗎?請幫忙!

回答

5

有一個較短的版本,您可以使用從Rails::Engine稱爲main_app。

<ul> 
    <li><%= link_to "Home", main_app.home_path %></li> 
    <li><%= link_to "Game", main_app.game_path %></li> 
    <li><%= link_to "Community", main_app.community_path %></li> 
</ul> 

我強烈建議使用它來避免應用程序與Spree之間的衝突(例如您的應用程序主頁與Spree的主頁)之間的衝突。

+0

非常感謝:)這樣的小幫手可以爲我添加無處不在 – StrikerFred