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

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

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

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

Q&A

解決済

1回答

176閲覧

rails createメソッドの確認方法

yorosi

総合スコア7

Ruby on Rails 5

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

0グッド

0クリップ

投稿2019/12/28 09:45

railsでユーザーが投稿したものにお気に入り機能を実施したいです。
https://qiita.com/s_rkamot/items/b1d4d64335f33399e713
参考に作ってますが、userモデル内で定義したlikeメソッドの動作確認したいのですが動作の確認方法がわかりません。

rails c で User.like(book)を打ちますがname error (book)となります。
まずなぜ引数(book)が必要かも分からぬ初学者です。。

解答お願い致します。

user.rb

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 :books 7 has_many :favorites 8 has_many :fav_books, through: :favorites, source: :book 9 10 def like(book) 11 favorites.find_or_create_by(book_id: book.id) 12 end 13 14end

book.rb

1class Book < ApplicationRecord 2 validates :title, :kill, :author, :image, presence: true 3 mount_uploader :image, ImageUploader 4 5 has_many :favorites 6 has_many :users, through: :favorites 7end

favorite

1class Favorite < ApplicationRecord 2 belongs_to :user 3 belongs_to :book 4end

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

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

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

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

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

guest

回答1

0

ベストアンサー

User.like(book)を打ちますがname error (book)となります。

そもそも、上のコードで定義しているのはインスタンスメソッドなので、たとえば@user.likeのように、モデルインスタンスに対して呼び出します。User.likeではそもそも呼び出せないはずです。

投稿2019/12/28 10:47

maisumakun

総合スコア145121

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問