2012-03-20 51 views

回答

1

我也問過同樣的問題

https://groups.google.com/forum/?fromgroups#!topic/mongoid/xuBbuyhiFEU

它目前不支持,但你可以做一個(簡單的)猴子貼片(如建議使用Benedikt )

https://gist.github.com/1977438

這是非常相似的AR(你可以在AR代碼檢查,我在這裏複製它爲簡單起見)

ActiveSupport.on_load(:active_record) do 
    if app.config.active_record.delete(:whitelist_attributes) 
     attr_accessible(nil) 
    end 
    app.config.active_record.each do |k,v| 
     send "#{k}=", v 
    end 
    end 
2

我從來沒有使用Mongoid,所以這是非常推測性的,但從它的外觀來看,AR使用Railtie初始值設定器來設置attr_accessible(nil),當該配置爲true時。

它看起來不像目前在配置中這樣做的方法,但你可能可以用它自己的初始化程序以某種方式掛鉤它。在Mongoid :: Fields中,如果protect_sensitive_fields的配置爲true(缺省值),它會爲id,_id和_type調用attr_protected。這也將active_authorizer設置爲黑名單。你可以修補它,並給白名單更好的配置,而不是調用attr_accessible(nil)。

所以是的,只是做一個補丁然後提交一個拉請求不是一個壞主意。紅寶石社區需要的最後一件事是另一個高調的質量分配失敗。

相關問題