2011-08-19 56 views
0

我有一個用Rails編寫的工作流程應用程序,並且有多個用戶將經歷的提示。當這些提示/手動操作「繼續」時,時間戳將針對工作流模型進行存儲。多個資源相同的控制器/視圖

代碼看起來像這樣

class Workflow < ActiveRecord::Base 

end 

class OpenBook < ActiveRecord::Base 
    belongs_to :workflow, :polymorphic => true 
end 

class ReadFirstPage < 
    belongs_to :workflow, :polymorphic => true 
end 

目前每個工作流項目(OpenBook),並吐出了一些文字(在模型中設置),並在視圖中的前進/後退按鈕。這些工作項目的控制器也做類似的事情(新的,完成的,編輯,繼續,倒帶)。

理想情況下,我想只使用相同的控制器和視圖,只是改變模型。是我能用路線做的事嗎?

resources :open_books, :controller => "workflow_item"

林不知道我怎麼會去在控制器中得到正確的分配。

或者我只是做這個完全錯誤,我應該使用助手?

回答

1

對於每個從共同父項繼承的特定對象類型,使用一系列控制器可能會更容易一些。通過這種方式,大部分重複都可以在只有兒童表達差異的基類中進行。

爲了確保您的模板正確地呈現,您可能需要爲它們指定的完整路徑,或者它會尋找定製版本:

def index 
    # ... 
    render(:template => 'parent/index') 
end 

通常這是多餘的,但在你的情況下,你可能需要它或者它會默認顯示不存在的子模板。

相關問題