So I’ve been following this guide to make a status feed based on what members you’re following (also in the guide) but I’m getting an undefined method error on “join” which I don’t see in the code.
This is what’s in my model (or what would be my microposts model)
**tattoo.rb**
#def self.from_members_followed_by(member)
# where(:member_id => member.following.push(member))
#end
default_scope :order => 'tattoos.created_at DESC'
- Error 2- scope :from_members_followed_by, lambda { |member| followed_by(member) }
private
def self.followed_by(member)
following_ids = %(SELECT followed_id FROM relationships WHERE follower_id = :member_id)
-Error 1 - where("member_id IN (#{following_ids}) OR member_id = :member_id", { :member_id => member })
end
**member.rb**
def feed
- Error 3- Tattoo.from_members_followed_by(self)
end
I guess the scope :from_members_followed_by replaces the commented out function which is why I commented it out.
The stack trace has the error at:
app/models/tattoo.rb:50:in `followed_by' - Error 1
app/models/tattoo.rb:43:in `block in <class:Tattoo>' - Error 2
app/models/member.rb:90:in `feed' - Error 3
app/controllers/members_controller.rb:15:in `home'
Ha! I think I got it.
First up: there is no need for the extra scope that just calls the
followed_byfunction. Secondly: the parameter to your scope should be amember.id, and you throw in the complete member.You can fix this in two ways. Either, in
member.rbor, in
tattoo.rbwrite:Hope this helps.