2012-06-23 71 views
0

對不起,我經常想知道這個新手問題。 我應該在哪裏創建我想在我的View中使用的方法?我應該在哪裏創建在我的視圖中使用的方法?

我會舉例說明。 我想在我的用戶/ views/show.html.erb中調用一個方法,該方法將返回一個布爾值,並且我可以在顯示頁面上顯示鏈接或不顯示鏈接。

嗯,我一直認爲這個方法應該在User.rb模型中創建! 但是我實際得到的是一個未定義的方法錯誤!

我會提供幫助!

感謝

UPDATE

它的工作,當我創建的用戶助手 .. 的方法,但就是編程? 正確方式?還是有更好的方式?

+1

你或許應該向我們展示了用戶模型的相關部分。 –

+0

這只是一個返回true的虛擬方法。 – Breno

回答

0

其實,大家好,這是很簡單的 新手在這裏並沒有使用對象調用它的用戶的方法: 例如:@ user.my_metho 我想打電話my_method

這是問題。

但隨着佩德羅提到德雷珀寶石真的沒有爲我做了... 甚至不能讓它正常工作...

0

我認爲,如果它的顯示相關的代碼,它應該可能進入特定的幫手,或者在'application_helper',如果你想在所有視圖中可用。格式化和顯示邏輯(像你所擁有的)應該進入助手。

如果方法要對數據進行更改,那麼它可能應該放入模型中。不知道你得到一個未定義的方法錯誤,因爲它應該工作。

2

現在我更喜歡使用一個主持人,類似於shown in this Railscast。它使您的代碼保持清潔,可重用,並且比Rails Helpers更接近OO,這使您更加理智。 :)

+0

你使用過濾器嗎? 因爲我安裝了gem而是g draper:decorator命令不起作用。它找不到這個特定的生成器。 – Breno

+0

你把它添加到你的'Gemfile'中嗎?它應該是AFAICT。 –

+0

什麼是AFAICT? 是的,它在我的Gemfile中,我無法生成,因爲它的語法不同於railscast中使用的onw。 但在裝飾器中,當我調用輔助方法時,我得到一個NoMethodError。甚至使用'h'。在mehtod名稱之前指定它是輔助方法... – Breno

相關問題