2011-03-17 44 views
9

您在哪裏檢查Ruby On Rails中不是模型屬性(如page,per_page,sort_mode)的URL參數?在控制器或模型中?例如,當您執行更復雜的數據庫查詢時,您是否會檢查參數並在控制器中設置默認值,然後執行MyModel.search(page, per_page, order, sort_mode, query),或者您會在模型內部設置驗證並僅傳遞非操作參數MyModel.search(params)何處檢查和驗證Rails中的非模型參數

而你如何報告該參數回到視圖?例如,sort_mode參數應該在排序方向上在視圖上產生一個小箭頭。你檢查並清理params散列並從params中獲取視圖中的數據,或者你使用自己的實例變量嗎?

回答

7

我傾向於在控制器中清理參數。

class ApplicationController < ActionController::Base 
    before_filter :sanitise_params 

    protected 

    def sanitise_params 
    # tidy up 
    # set defaults 
    end 
end 

模型聲明其接口並由控制器以正確方式與他們交談的良好習慣。這樣你就可以清楚地分離你的圖層。

查看幫手是有幫助的意見。這裏是some examples作爲ActionPack的ActionView的一部分。你可以把自己放在app/helpers