質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

368閲覧

commentを投稿する時にuser_idを一緒に保存したい

nasuk47

総合スコア311

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2019/11/25 09:40

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を確認した。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

model Like が作られていないのでは?

投稿2019/11/25 09:49

winterboum

総合スコア23329

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nasuk47

2019/11/25 10:03

likeモデルを作ったら解決しました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問