请解释一下,如何使用多种方法在数据库中创建记录,更改我不希望成为attr_accessible
的属性。
例如,在用户模型中:
attr_accessible :email, :password, :password_confirmation, :guest
由于安全问题,我不希望'admin'在这里放置true或false行
答案 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属性。