現在Rails on Ruby
で読んだ本の内容を投稿するサイトの課題に取り組んでいるのですが、
お気に入り機能のコントローラーを追加しようとする、
またはブラウザでページを開こうとすると下記のエラーが出てしまいました。
undefined method ` has_many' for User (call 'User.connection' to establish a connection):Class (NoMethodError)
Did you mean? has_many
意味を調べ、has_manyが定義されていないということで、
カラムを追加しようとrails g~コマンドで追加しようとしても同じエラーになってしまい解決方法がわからなくなってしまいました。
お忙しいところ恐縮ですが、何卒宜しくお願い致します。
user.rb
use.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 7 has_many :books, dependent: :destroy 8 has_many :book_comments, dependent: :destroy 9 has_many :favorites, dependent: :destroy 10 11end 12
favorite.rb
class Favorite < ApplicationRecord belongs_to :user belongs_to :book end
book.rb
class Book < ApplicationRecord belongs_to :user has_many :book_comments, dependent: :destroy has_many :favorites, dependent: :destroy def favorited_by?(user) favorites.where(user_id: user.id).exists? end end
route.rb
Rails.application.routes.draw do devise_for :users root 'homes#top' resources :books, only: [:new, :create, :index, :show, :destroy] do resource :favorites, only: [:create, :destroy] resources :book_comments, only: [:create, :destroy] end end
どの行ででてます?
ありがとうございます。
/home/ec2-user/.rvm/gems/ruby-2.6.3/gems/activerecord-5.2.6/lib/active_record/dynamic_matchers.rb:22:in `method_missing': undefined method ` has_many' for User (call 'User.connection' to establish a connection):Class (NoMethodError)
初心者で分からず申し訳ございません、エラー文全体として↑となっておりまして、
どのファイルの行で出ているかがよく分からずで…。確認する箇所として、上記の部分で合っておりますでしょうか。
回答1件
あなたの回答
tips
プレビュー