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
Prospects
instead ofProspect
. Try running"prospects".singularize.classify
which should return"Prospect"
to see if that is the issue. – Kristynkrocktype
column it could be acting as the STI inferance column. Seems unlikely though. The schema might be helpful here. – Kristynkrockuser.prospects << [prospect_name]
, to make sure that the joins are created in the backend. – Undertook