On 10/14/07, Jamal S. [email protected] wrote:
I have in my User model.
Let’s step back a bit.
I think you mean
This means that AR is expecting your User table to have a foreign key
to the Group table with the name group_id
With this association a user is associated with a single group.
I want to put condition on it so it end of like this
SELECT * FROM groups WHERE (groups.user_id = 2 OR (groups.user_id is
…so I thought this would do that
belongs :groups, :conditions => [“groups.user_id is NULL”]
The condition on an association declaration adds additional
restrictions on what will be returned on the query. with a belongs_to
:group association, you get a group (not groups) method which returns
at most one group. If effectively does Group.find(group_id).
It seems like you’re modeling this wrong.
What are the real-world relationships between user and groups?
If a group can have more than one user (seems likely) then you want a
has_many relationship back to user. This still would not requre a
user_id column in group.
If, on the other hand, you want some groups to belong to a single user
then group should have a belongs_to :user, and a user_id column
If the user table has a user_id column then to find groups which
belong to either a particular user or no-one you can do something
Group.find(:all, :conditions => [“user_id IS NULL OR user_id = ?”,
My blog on Ruby