如何在ActiveRecord数据库(RoR)中将belongs_to字段设置为nil

时间:2013-01-31 10:05:25

标签: ruby-on-rails null rails-activerecord

我有一个包含评论的数据库。在模型文件中,我声明了一条评论

belongs_to :user

在数据库中有一个user_id字段与其所属的用户相关联。现在,当删除注释时,而不是实际销毁该条目,我想删除注释的值并将其保留为“此消息已被删除”。但是,似乎我无法通过rails将user_id字段设置为nil。我试过了

@comment.user_id = nil
@comment.save

以及

@comment.user = nil
@comment.save

但是都不行。解决方案是什么?

1 个答案:

答案 0 :(得分:1)

如果您在创建评论时使用gem,则会对gem代码进行验证。您可以通过sql更新来绕过这些验证。您可以绕过验证@comment.save(validate: false)或使用sql @comment.update_column :user_id, nil进行更新。