请解释一下,如何使用多种方法在数据库中创建记录,更改属性我不想成为attr_accessible
。批量分配问题
例如,在用户模型:
attr_accessible :email, :password, :password_confirmation, :guest
我不想“管理员”真的还是假的行放在这里,因为安全问题的
请解释一下,如何使用多种方法在数据库中创建记录,更改属性我不想成为attr_accessible
。批量分配问题
例如,在用户模型:
attr_accessible :email, :password, :password_confirmation, :guest
我不想“管理员”真的还是假的行放在这里,因为安全问题的
您可以手动分配属性,例如如果你的模型被命名为用户,你可以做到以下几点:
user = User.first
user.update_attributes(attributes_hash)
user.admin = true
user.save
attr_accessible仅用于通过update_attributes方法例如质量分配,但你总是可以分配通过直接调用它,就像我上面的示例一样。
我想你可能会问如何在测试或开发环境中更改管理员属性,而无需将其添加到attr_accessable
。
一种方法是toggle
方法。例如,
user = User.first
user.admin?
=> false
user.toggle!(:admin)
user.admin?
=> true
有关toggle
要考虑的几件事情。该属性必须作为符号传递,并且所有回调和验证都会被跳过。换句话说,对测试和开发之外的任何事情要小心。因此,您可以如何批量分配管理员属性,而无需将其添加到attr_accessable
。
也许你想允许只为管理员更改管理员行,所以使用'attr_accessible:email::password,:password_confirmation,:guest,:admin,as :: admin',然后更新'update_attributes({admin:true },如::admin)'(质量分配) –