2012-12-28 19 views
0

我該怎麼做link_to,我可以像對象類字符串一樣修改?Rails:link_to的dynamic_path到不同的資源名稱

首先,我有我的對象多態(書籍,雜誌),所以我需要用戶link_to(@object.title, [@object.user, @object])。如預期的那樣,該製造商的多態性像user_book_pathuser_magazine_path

我的問題是如何將user零件更改爲作家,例如。 writer_magazine_pathwriter_book_path?原因在我的路線中,我將用戶命名爲writer,我想知道如何將它用於link_to方法。

note不知道我是否正確標題。如果是的話,改正它。

回答

0

試試這個,讓助手例如

放在你的助手

def *method_name(@object)* 
    link_to "whatever" write_"#{object}"_path 
end 

現在,在您的視圖文件

<%= method_name(@object) %> 
+0

如果link_to是一個字符串或其他東西,我認爲你在路徑上進行插值? – index

+0

幫手它就像一個視圖文件無論你寫什麼看法,你也可以寫在助手,所以你可以在幫手中使用link_to –

+0

我還沒有嘗試過,但我不認爲「#{對象}」會插入本身在寫_ * _路徑上。但是當我回到我的代碼時,我會嘗試一下。 – index

0

在這種情況下,你可以使用eval,如下

<%= link_to @object.title, 
    eval("writer_#{@object.class.name.downcase)_path(pass_object_here)"} %> 
相關問題