2013-07-22 22 views
0

我還沒有切換到Rails 4,但&一直在研究strong_params。我喜歡我所看到的&只想在1個型號上使用它。似乎很簡單,但我想在我的config> application.rb文件中註釋'config.active_record.whitelist_attributes = true'。Rails:如何僅在某些型號上使用Strong_Params

我該如何安全(明智地安全)在某些模型中使用strong_params?

+0

當然,爲什麼不可能呢? – phoet

+0

你能解釋一下嗎?我想我必須做一些其他的事情,因爲我評論出whitelist_attribute ..我還是新的ROR @phoet – goo

回答

0

我建議這種方法:默認啓用強參數,並且專門爲不需要它的控制器禁用它。 (是強大的參數是在控制器現在使用Rails 4,不要在型號了)

要禁用特定的控制器,你可以使用params.require(:model_name).permit!

這將允許任何params用於在特定控制器

class UnsafeController 

    ... 

    def update 
    ... 
    @unsafe.update unsafe_params 
    ... 
    end 

    private 

    def unsafe_params 
     params.require(:unsafe).permit! 
    end 

end 
+0

而** config.active_record.whitelist_attributes = true ** @Benjamin – goo

+0

正如我所提到的「在默認情況下啓用強參數「。意思是你可以從你的'config/application.rb'文件和任何'mass_assignment_sanitizer'選項中刪除'whitelist_attributes'選項。 – Benj

+0

ok,很抱歉,如果我誤解或錯過了某些可能很明顯的東西,但要弄清楚這一點,「配置。 active_record.whitelist_attributes = true「只有在我的模型中沒有attr_accessible時纔會發揮作用。所以這是你想要做的點,對嗎? @Benjamin – goo

相關問題