2012-03-20 56 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)。

所以是的,只是做一个补丁然后提交一个拉请求不是一个坏主意。红宝石社区需要的最后一件事是另一个高调的质量分配失败。

相关问题