has_many :through association cannot find a valid model

Viewed 2614

I am creating association pretty much identical with the Rails Guides Patient-Appointment-Physician data model. A user has many prospects through prospect_subscription. However, when trying to access user.prospects in rails console, it throws the following error:

Rails couldn't find a valid model for Prospects association. Please provide the :class_name option on the association declaration. If :class_name is already provided, make sure it's an ActiveRecord::Base subclass. (NameError)

uninitialized constant User::Prospects (NameError)

Which is strange because all three models are right there. Migration has been run and sample data has been populated and can be checked in pgAdmin. Why can't Rails find the model?

Association defined at the models are as follows:

models/prospect.rb

class Prospect < ApplicationRecord
  has_many :prospect_subscriptions
  has_many :users, through: :prospect_subscriptions
 end

models/user.rb


class User < ApplicationRecord
  has_many :prospect_subscriptions
  has_many :prospects, through: :prospect_subscriptions
end

models/prospect_subscription.rb
class ProspectSubscription < ApplicationRecord
  belongs_to :user
  belongs_to :prospect
end
0 Answers
Related