我有一堆控制器與呈現索引視圖的方法。這導致我在大多數方法的末尾寫入render :index
。這裏有一個例子如何幹掉所有這些調用來渲染:index?
def index
@models = Model.find(:all)
end
def new_models
@models = Model.find_by_new(true)
render :index
end
def old_models
@models = Model.find_by_new(false)
render :index
end
理想情況下,我只想移動渲染代碼到一個過濾器後,但作爲控制器進行調用前都要經過過濾,這不是一個選項,以渲染。
我有大量的這樣的控制器,所以一個解決方案將刪除大量的重複代碼。
這個應用程序目前仍然Rails 2.3,但是,它會在未來一兩個月升級到Rails 3。所以雖然我更喜歡2.3版本的技術,但Rails 3解決方案仍然值得讚賞。
只是注意,儘量避免意義的connascence儘可能。(我只是*有*爲用那個'單詞'來一天,因爲我剛剛瞭解到有關動態**:D **)如果有興趣,請參閱http://scotland-on-rails.s3.amazonaws.com/1A03_JimWeirich-SOR.mp4 – Zabba 2011-01-31 12:12:52
這是一個非常好的演講。感謝分享它。我的例子不是我寫的任何代碼。例如,我只是隨機發送代碼。我很高興我這樣做,但是,否則我可能永遠不會了解connascence :-) – 2011-01-31 18:01:44