2013-08-27 49 views
4

我重構,其具有利用用於相同數據的不同方面的單個控制器操作的多個視圖的應用程序(表,日曆,其他日曆,文件輸出)在Rails中,如果只有響應正文變化,我應該創建一個新的控制器動作嗎?

目前,操作使用參數和條件來選擇4個響應中的一個,但實際的數據是通用於所有4

是否有此情況下,一般的做法?看起來最簡單的事情是將此操作分解爲4個操作,並使用過濾器和私有方法保持乾燥。

+0

其它簡單的方法可以是對你的看法一樣marketing_tabular.html,marketing_calendar.html,marketing_other_calendar.html標準化的文件名和使它們沒有條件語句,如果已知類型'呈現「營銷_#{PARAMS [:類型]}」 '否則呈現404。 – rubish

回答

1

我同意你的觀點。

把它們全部放在一個行動中實際上並不那麼幹。用條件處理參數,準備模板名稱,準備查詢字符串,這些都需要不必要的代碼與分割動作進行比較。

另一個缺點是過濾器和操作消息。拆分爲幾個動作,action_name是不同的,然後可以發送不同的消息。

例如,我有一個應用程序,它具有用於一個模型vote方法。最後我用vote_upvote_down因爲只有在用戶簽署允許投票下來,然後正確ACTION_NAME可以發送到慘慘。

相關問題