群体分配问题

时间:2013-05-14 23:24:32

标签: ruby-on-rails

请解释一下,如何使用多种方法在数据库中创建记录,更改我不希望成为attr_accessible的属性。

例如,在用户模型中:

attr_accessible :email, :password, :password_confirmation, :guest

由于安全问题,我不希望'admin'在这里放置true或false行

2 个答案:

答案 0 :(得分:0)

您可以手动分配属性,例如,如果您的模型名为“用户”,则可以执行以下操作:

user = User.first
user.update_attributes(attributes_hash)
user.admin = true
user.save
例如,

attr_accessible仅用于通过update_attributes进行质量分配,但您可以通过直接调用特定属性来分配特定属性,如上例所示。

答案 1 :(得分:0)

我想您可能会问如何更改测试或开发环境中的admin属性而不将其添加到attr_accessable

一种方法是toggle方法。例如,

user = User.first
user.admin?
=> false
user.toggle!(:admin)
user.admin?
=> true

关于toggle要考虑的几件事。必须将该属性作为符号传递,并跳过所有回调和验证。换句话说,对测试和开发之外的任何事情都要谨慎。因此,您可以在不将其添加到attr_accessable的情况下批量分配admin属性。