在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 /
感谢。
答案 0 :(得分:0)
您可以在验证前将其过滤掉。另一个选项是切换到attr_protected并指定要保护的字段而不是要打开的字段。这可能是一个简单的开关或更复杂的开关,具体取决于您的模型的大小。