I have 3 models User,Listing and Message. What I want is for an authenticated user to have many listings. The listings then can have multiple messages. So the messages are tied to the user through the listing model. I am able to get a users listings but not able to get the users messages which he owns through the listings. Here are the associations that I currently have.
class User < ActiveRecord::Base
has_many :listings, :dependent => :destroy
end
class Listing < ActiveRecord::Base
belongs_to :user
has_many :messages
end
class Message < ActiveRecord::Base
belongs_to :listing
end
To create a message I simply do this;
@listing = Listing.find(params[:listing_id])
@message = @listing.messages.build(params[:message])
And getting the user’s listing i have this;
@user_listings = Listing.user_listings(current_user)
But getting the messages tied to the user’s listings proves to be elusive. What am I doing wrong or how do I go about this? help appreciated.
Still not sure where user_listings comes from but why not this:
Include prefetches all the listings’ associated messages in one query in order that they’re not fetched in the loop causing n+1 querying.
Or another approach, if you don’t need the listings data.