I have a table which maps users to photo album as hosts:
| Album table | => | Hosts | <=> | Users |
Sometimes I need to query if a user is a host of an album:
if album.hosts.include? user
Which I cannot do because "hosts" is an array of Host models -- not
users. I was wondering which solution be faster, or perform better.
This:
has_many :host_users, :through => :hosts, :source => :user
Or:
def host_users
# Create table as instance variable
if !@hostUsersTbl
hosts.each do |h|
@hostUsersTbl[h.user.id] = h
end
end
@hostUsersTbl
end
The first solution would make an extra call to the DB, but the second
is manually creating the list. I guess I could also do this instead:
has_and_belongs_to_many :hosts, :class_name => "User",
:join_table
=> "hosts"
But then I wouldn''t have the Host model array to manipulate (i.e.
create, delete), right? Please advise.
Thanks,
Jeremy
--~--~---------~--~----~------------~-------~--~----~
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
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---