投稿したものに対していいねやコメントすることができるアプリを作成中なのですが、状況としては
membermodel(会員)、kijimodel(投稿),votemodel(いいね機能)、commentmodel(コメント機能)とモデルがそれぞれあり、memberがkijiに対してvoteすることができる(いいね機能の実装)実装はすでにできているのですが(has_many_through m:nの関連付け)コメント機能の実装がうまく行かない状況です。具体的にはコメントのフォームに入力をし保存をすると(createアクションを呼び出す際)
Mysql2::Error at /kijis/1/comments Field 'kiji_id' doesn't have a default value
comments_controller.rb def create @comment = Comment.new(comments_params) @comment.member = current_member current_member.commented_kijis << @comment if @comment.save redirect_to @kiji end end private def comments_params params.require(:comment).permit(:comments, :kiji_id, :member_id) end end
上記のコードでエラーが出てしまいます。コメントテーブルにはcomment, kiji_id member_idとカラムがあり外部キーも定義しているのですが、kiji_idの取得がうまくできずエラーが出てしまいます。いくつかkiji_idの取得をするのに試したのですが
例えば
def create @comment = Comment.new(comments_params) @comment.member = current_member current_member.commented_kijis << @comment if @comment.save redirect_to @kiji end end
とすると
ActiveRecord::AssociationTypeMismatch at /kijis/1/comments
Kiji(#70097393687360) expected, got Comment(#70097381170400)
というエラーが出たりとか。。。
以上このように進展がうまく行かず困っているので解決方法があればご教示頂きたいです。
ほかにもエラー原因もあればそちらもご教示頂きたいです。
アソシエーションの定義はすでに実装済みのvoteと同じでmemberがkijiにcommentできる(has_many_through m:nの関連)形となっています
あなたの回答
tips
プレビュー