2013-07-15 28 views
0

我試圖讓Rails中使用@Variable的link_to內

<%= link_to @company.name, current_company %> 

工作。它確實有效,只要我保持在同一個配置文件頁面中。只要我試圖離開它,我會在StaticPages#about - undefined方法名''中得到NoMethodError:NilClass。我明白問題出在控制器內(我猜?),但就是這樣。請有人指點我正確的方向。

修訂

更新方法在我satic_pages控制器

def home 
    @company = Company.new 
    end 

    def about 
    @company = Company.new 
    end 

有助於跳過錯誤,但不是公司名稱的鏈接開始看起來像

/companies/2 
+0

我提交了一個答案,但是如果你發佈你的控制器,這將有助於調試這個問題。 – Huy

回答

0

更新:由於您希望您的鏈接只顯示公司名稱,因此您可以執行如下操作:<%= link_to @company.name, @company%>

在您的控制器中,您想要引用您要鏈接的公司,所以您可以執行類似@company = Company.last的操作。這將會創建您創建的最後一條記錄。現在,當您加載您的頁面時,該鏈接會將您帶到該公司的顯示頁面,並將上一個公司的名稱作爲超鏈接的文本。

+0

我必須爲控制器中的每一個動作初始化@company = Company.new然後呢?我有5頁,而且看起來並不像真正的Rails方式 –

+0

不,你只需要在你有一個窗體或者你需要一個新的公司記錄時初始化'@ company'。如果你想更新一箇舊的記錄,你可以做一些像'@company = Company.find(1)'或類似的東西。 – Huy

+0

我只希望公司的名稱在所有控制器上的每個頁面中都以link_to標題顯示。 –