Find objects in many_to_many (:through) relation

Hi, my first question, and probably a newbish one:

So I have a projects model, which belongs to a user :through an
assignment table…

like this:

class User
has_many :assignments
has_many :projects, :through => :assignments
end

class Project
has_many :assignments
has_many :users, :through => :assignments
end

class Assignment
belongs_to :user
belongs_to :project
end

Now I want in the startpage (home controller), after logging in, see
all the projects assigned to the current user.

How do I wwrite that query?

I have assignments like

@assignments = Assignment.where(“user_id = ?”, current_user.id)

but if I try the same thing with projects I get an error… as there
is no user_id column in projects…

there must be an elegant way to query this with Active Record, right?

thanks in advance

On Jan 31, 9:09am, frankblizzard [email protected] wrote:

@assignments = Assignment.where(“user_id = ?”, current_user.id)

but if I try the same thing with projects I get an error… as there
is no user_id column in projects…

there must be an elegant way to query this with Active Record, right?

You wouldn’t normally use where (or find in previous versions of
rails) for this sort of stuff. Setting up associations with has_many
etc. means you can do current_user.assignments, current_user.projects
etc.

Fred

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs