2013-07-16 42 views
0

我的web應用中有一個PartsController,它的工作非常好。它發送正確的數據進行查看,以便視圖可以呈現圖表/統計數據等等,它和一切都是完整的工作順序。Rails重用現有控制器

現在我在我的應用程序中有另一個功能,可以將零件組合成產品。現在我有一個ProductController,我基本上想要保留與部件控制器完全相同的行爲,這意味着我想重用從零件控制器中存在的視圖,但只需發送不同的數據即可查看。 PartsController會發送一個數據,ProductController會發送其他數據到視圖,但它們當然是相同的類型。

這樣做的最好方法是什麼?產品控制器可能繼承零件控制器?這甚至有可能在rails中覆蓋控制器中的某些方法,但使用相同的視圖?

回答

0

這聽起來像你不想分享PartsControllerProductController之間的控制器邏輯,只是視圖。如果是這樣,就把模板在一個共同的目錄,並在控制器中,這樣做是爲了渲染:

# imagine the templates are in app/views/products 
render 'products/action_name' 

如果您還想要分享控制器邏輯,有幾個選項:

  1. 兩個從通用超繼承
  2. 從其他
  3. 一個繼承(和覆蓋選擇方法)
  4. 兩個include共同Module