我有一个包含评论的数据库。在模型文件中,我声明了一条评论
belongs_to :user
在数据库中有一个user_id字段与其所属的用户相关联。现在,当删除注释时,而不是实际销毁该条目,我想删除注释的值并将其保留为“此消息已被删除”。但是,似乎我无法通过rails将user_id字段设置为nil。我试过了
@comment.user_id = nil
@comment.save
以及
@comment.user = nil
@comment.save
但是都不行。解决方案是什么?
答案 0 :(得分:1)
如果您在创建评论时使用gem,则会对gem代码进行验证。您可以通过sql更新来绕过这些验证。您可以绕过验证@comment.save(validate: false)
或使用sql @comment.update_column :user_id, nil
进行更新。