I'm confused about something I thought should work. I have tables Users and 
Blogs, joined together through Memberships.  Membership also has a boolean for 
moderator-ness.  So, the Blog model looks like this:

class Blog < ActiveRecord::Base
  has_many :memberships

  has_many :users,
           :through => :memberships
  
  has_many :moderators,
           :through => :memberships,
           :source => :user,
           :conditions => { :memberships => {:moderator => true} } 
end

Imagine something trivial like this:

b = Blog.create(:name => 'politics')
user1 = User.create(:name => 'billg')
user2 = User.create(:name => 'dhh')

b.users << user1
b.moderators << user1
b.save!

I see this

b.memberships
+----+---------+---------+-----------+
| id | user_id | blog_id | moderator |
| 1  | 1       | 1       |           | 
| 2  | 2       | 1       |           |
+----+---------+---------+-----------+

Which seems plain wrong.  I'd think the moderator column should be 't' for the 
second user's membership since he was added via the :moderators association 
which has a conditions clause.

What am I misunderstanding?  Thanks much.

-Eric

ps: Rails 2.3.4

pps: no apparent difference if I rewrite the conditions to array-style.

ppps: it has been mentioned that ticket #2998 
https://rails.lighthouseapp.com/projects/8994/tickets/2998 is related, but that 
seems to be about the query side, not the record-creation side.
 

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to