2012-04-25 94 views
2

所以我有不同的控制器共享很多功能,我想知道是否有一種方法來共享他們之間的相似功能。Rails部分爲不同的控制器

例如這樣的:

= link_to 'Edit', dvd_path(dvd), :class => 'btn' 

當管制員之間唯一改變的是對象,而不是DVD的將是書或遊戲。所以我認爲必須有一種方法來創建一個使用該控制器的正確路徑的部分,而不必重寫每一個。而不必發送該對象。

想法表示讚賞。

編輯

@defaye:我想要做的是重用我有以上並將其應用到7個左右不同的控制器代碼。 上面的代碼只是一堆鏈接和路徑的例子,它們總是相同的,唯一改變的就是dvd_path(dvd)變成了book_path(book)等。

我想要最簡單的,更直接的做法。

事實上,我現在想知道是否有可能具有處理多個控制器的相同視圖,因爲它們非常相似。這將是太棒了!

謝謝。

+1

我想你應該在你想避免否則就太誘人建議你已經知道什麼添加(從我的理解閱讀這個問題) – Jonathan 2012-04-25 23:19:24

回答

0

如果你的代碼只是幾個方法,你根本就不需要部分。幫手可以幫助你。

下面是一個例子。你可以在ApplicationHelper中定義它。

# application_helper.rb 
def link_to_edit(object) 
    link_to('Edit', polymorphic_path(object, :action => 'edit'), :class => 'btn') 
end 

而且在你看來

= link_to_edit(object) 
+0

對不起在之前的文章中,我不知道我必須在模塊的頂部加入'Module ApplicationHelper'。現在它可以工作。 – kakubei 2012-04-26 13:51:20

+0

出於好奇,有沒有辦法做到這一點,而不明確發送對象?班上的學生不應該意識到自己嗎? – kakubei 2012-04-26 13:54:34

+0

此外,這個動作不起作用:'url_for(:id => object,:action =>'destroy')'它會轉換爲:games /:id並調用'show'動作。調用'destroy'行爲的正確方法是什麼?謝謝。 – kakubei 2012-04-26 14:14:45

相關問題