你如何使用attr_accessible?

时间:2010-12-27 12:44:17

标签: ruby-on-rails

我找不到新手的任何教程。是否有使用attr_accessible的简单规则?我应该将它用于用户可以从表单设置的属性吗?

如果可以从表单设置所有属性怎么办?

我很感激链接或简短的建议。我已找到http://asciicasts.com/episodes/26-hackers-love-mass-assignment

2 个答案:

答案 0 :(得分:5)

attr_accessible是可以批量分配给模型的白名单属性列表。这是一种策略,表示您需要明确列出所有属性。这样,“开放端口”是众所周知的,并且清楚地列在模型中。这与attr_protected相反,attr_protected是要保护其免受质量分配的黑色字段列表。

通常在中等到简单的应用程序中,存在外键类型字段,例如user_id或company_id,其可能不是由用户输入确定的。必须保护这些字段不受用户输入的影响。主键字段'id'通常由Rails保护。

如果您的模型具有可以通过Form输入更新的所有列,那么请确保使用attr_accessible列出它们(或者您可能希望跳过此特定模型的attr_accessible)。

不要把婴儿扔出洗澡水,但是,attr_accessible是一件好事,并确保你在其他模型中使用它,这些模型可能不像你在问题中谈到的那样开放。

通常在具有大量列的模型上使用attr_protected,在大多数其他模型上使用attr_accessible。

答案 1 :(得分:2)