user_idが保存できない
いいね機能を実装しようと思ったのですが、その前に投稿とuser_idを紐づけていないと思い
https://qiita.com/nojinoji/items/2c66499848d882c31ffa
を参考にuser_idを投稿に紐づけようとしたところでエラーが出る。
発生している問題・エラーメッセージ
NameError in CommentsController#create uninitialized constant Comment::Like
サンプルコード
controller
1class CommentsController < ApplicationController 2 3 before_action :authenticate_user!, only: [:create] 4 5 def index 6 @comments = Comment.all 7 end 8 9 # def show 10 # end 11 12 def new 13 @comment = Comment.new 14 @comment.member_comments.build 15 end 16 17 def create 18 @comment = Comment.new(comment_params) 19 @comment.user_id = current_user.id 20 21 if @comment.save 22 redirect_to comments_path 23 else 24 render :new 25 end 26 end 27 28 def show 29 @comment = Comment.find(params[:id]) 30 end 31 32 def update 33 end 34 35 def destory 36 comment = Comment.find(params[:id]) 37 comment.destory 38 end 39 40 private 41 def comment_params 42 params.require(:comment).permit(:place, :text, :image, { :member_ids => [] }) 43 end 44 45end
controller
1class UserController < ApplicationController 2 def index 3 @users = User.all 4 end 5 6 def show 7 @user = User.find(params[:id]) 8 end 9end 10
model
1class User < ApplicationRecord 2 # Include default devise modules. Others available are: 3 # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable 4 devise :database_authenticatable, :registerable, 5 :recoverable, :rememberable, :validatable 6 has_many :user_members 7 has_many :members, through: :user_members 8 has_many :comments 9 has_many :likes 10 has_many :comments, through: :likes 11end
model
1class Comment < ApplicationRecord 2 belongs_to :user 3 has_many :likes 4 has_many :user, through: :likes 5 has_many :member_comments 6 has_many :member, through: :member_comments 7 8 accepts_nested_attributes_for :member_comments 9 validates :user_id, {presence: true} 10end
試したこと
エラーメッセージで検索すると定義したクラスを読めないというエラーで
https://qiita.com/imotan/items/c73fab5ee230114a08b6
の通りmodels/userを確認した。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/25 10:03