2010-07-07 65 views
1

我在StudentHours和TeacherHours中使用單個表繼承,它們有一個父小時。Ruby on Rails中的控制器繼承 - 父類中的模型和控制器訪問

型號代碼大多在hour.rb,並在student_hour.rb和teacher_hour.rb

現在我意識到,大多數控制器代碼被複制,以及非常小的,所以我創建了一個hours_controller是students_controller和teachers_controller的父級。如TeacherHours.new 因爲hours_controller實例化模型對象我創建了一個訪問的子類,如:

def MyModel 
@mymodel = "TeacherHours" 
end 

...那麼hours_controller只需調用MyModel.new

偶爾有其他模型被引用,有時我甚至會在視圖上調用「渲染」,所以我在這些子類中也創建了訪問器。

我找不到其他人做這個的例子。那麼,這是不是有什麼理由,或者有更好的方法嗎?

回答

0

爲什麼你需要爲這些模型的行爲使用繼承?

這聽起來像是在模型和控制器中的不必要的繼承。

+1

我不需要,但我選擇了,因爲所有的方法都會在控制器和模型中重複。 – 99miles 2010-07-08 02:21:47

+0

另一種方法是平滑模型繼承並使用單個控制器。擁有這兩個模型子類型的價值是什麼?你也許可以得到相同的行爲,而沒有使用繼承的複雜性。 – Winfield 2010-07-08 17:07:47