0

コメントを含むデータベースがあります。モデルファイルでは、コメント

belongs_to :user

データベースには、所属するユーザーに関連付けられた user_id フィールドがあります。コメントが削除されると、実際にエントリを破棄するのではなく、コメントの値を削除して「このメッセージは削除されました」のままにします。ただし、レールを介して user_id フィールドを nil に設定できないようです。私はもう試した

@comment.user_id = nil
@comment.save

としても

@comment.user = nil
@comment.save

しかし、どちらも機能しません。解決策は何ですか?

4

1 に答える 1

1

コメントの作成に gem を使用している場合は、gem コードの検証が行われます。SQL を介して更新することで、これらの検証をいつでもバイパスできます。検証をバイパスする@comment.save(validate: false)か、 sql を使用して更新し@comment.update_column :user_id, nilます。

于 2013-01-31T10:25:38.683 に答える