如何使用update_column命令更新夹具的列以供临时使用。 现在我有以下命令正常运行:
name = names(:one)
role = roles(:one)
name.role_id = role.id
assert name.save
它运行正常,但有没有一种有效的方法可以在一行中完成,比如name.update_column(---,----)?
答案 0 :(得分:4)
name = names(:one)
name.update_attributes(role_id: roles(:one).id)
答案 1 :(得分:2)
感谢@richfisher的回答,稍后我想出另一种方法。 update_attributes
不适合在测试中使用,因为 update_attributes 的问题是
It runs callbacks and validations
通常我们不想在测试用例中运行这些东西我们可以使用 update_column 代替update_attributes
name.update_column(:role_id, roles(:one).id)
使用 update_column 的优势是
It did not run callbacks and validations