多くのアイテムを持つユーザー モデルがあります。評価はユーザーとアイテムに属します。
DB で、ratings.user_id を NULL 以外に設定しました。
私がアイテムを作成しているとき、私はこれをしたいと思います:
def create
current_user.items.create(params[:item]).ratings.create(params[:rating]
redirect_to items_path
end
ただし、これはSQLエラー「user_id cannot be nil」で中断します
だから私は create メソッドを次のように書き直しました
def create
current_user.items.create(params[:item]).ratings.create(params[:rating].merge({:user_id => current_user}))
redirect_to items_path
end
これは正常に動作します。
ただし、現在のユーザーのレシーバーから create メソッドを連鎖させると、評価の user_id が取り込まれてしまうと考えていました。なぜだか知っている人はいますか?
ティア。