我找不到任何适合新手的教程。使用attr_accessible没有什么简单的规则吗?我是否应该将它用于用户可以从表单中设置的属性?
如果所有属性都可以从表单中设置,该怎么办?
我将感谢一个链接或简短的建议。我已经找到http://asciicasts.com/episodes/26-hackers-love-mass-assignment了
发布于 2010-12-27 21:07:53
attr_accessible是可以大量指定给模型的属性的白名单。这是一种需要显式列出所有属性的策略。这样,“开放端口”是众所周知的,并在模型中清楚地列出。这与attr_protected相反,后者是要防止批量分配的字段的黑名单。
通常,即使在中等到简单的应用程序中,也有一些外键类型字段,如user_id或company_id,这些字段可能不是由用户输入确定的。必须保护这些字段不受用户输入的影响。主键字段'id‘通常受Rails保护。
如果您的模型包含可以通过表单输入更新的所有列,那么请务必使用attr_accessible列出这些列(或者您可能希望跳过此特定模型的attr_accessible )。
但是,不要随波逐流,attr_accessible是一个好东西,并确保您在其他模型中使用它,这些模型可能不像您在问题中讨论的模型那样开放。
我通常在有大量列的模型上使用attr_protected,在大多数其他模型上使用attr_accessible。
发布于 2010-12-27 20:47:12
看看这个:Use attr_protected or we will hack you
https://stackoverflow.com/questions/4538721
复制相似问题