attr_accessible的质量分配:特殊情况下的关联属性

时间:2009-07-16 18:31:34

标签: ruby-on-rails

在User模型中,我有两个accepts_nested_attributes_for :: details(has_one association)和:membership_orders(has_many)。

对于:我的详细信息:

attr_accessible :details_attributes

但是对于membership_orders,我不能拥有这么简单的访问者,因为我想保护它免受普通用户的攻击,但是让管理员可以访问它。

可以使用属性权限插件(github.com/Fingertips/attribute-permissions/tree/master),但我认为这不是最好的解决方案。

您能告诉我如何为attr_accessible添加特殊表达式,或者使用before_validation(或what-else)过滤掉这些属性。

您可以通过以下链接了解此问题:blog.smartlogicsolutions.com/2009/02/24/rails-23-nested-object-forms-im-not-crazy-about-them /

感谢。

1 个答案:

答案 0 :(得分:0)

您可以在验证前将其过滤掉。另一个选项是切换到attr_protected并指定要保护的字段而不是要打开的字段。这可能是一个简单的开关或更复杂的开关,具体取决于您的模型的大小。