Does the Hobo scope thing work in :through relations?
>From Agility:
class Project < ActiveRecord::Base
hobo_model # Don't put anything above this
has_many :memberships, :class_name =>
"ProjectMembership", :dependent => :destroy
has_many :members, :through => :memberships, :source => :user
has_many :contributor_memberships, :class_name =>
"ProjectMembership", :scope => :contributor
has_many :contributors, :through
=> :contributor_memberships, :source => :user
...
now, in script/console:
>> p = Project.find 1
]] Project Load (0.9ms)
]] SELECT * FROM "projects" WHERE ("projects"."id" = 1)
=> #<Project id: 1, name: "Project 001",
>> p.members
]] User Load (1.4ms)
]] SELECT "users".* FROM "users"
]] INNER JOIN project_memberships ON users.id =
project_memberships.user_id
]] WHERE (("project_memberships".project_id = 1))
=> [#<User id: 3, ...>, #<User id: 2, ... >, #<User id: 5,... >]
>> p.contributors
]] User Load (2.0ms)
]] SELECT "users".* FROM "users"
]] INNER JOIN project_memberships ON users.id =
project_memberships.user_id
]] WHERE (("project_memberships".project_id = 1))
=> [#<User id: 3, ...>, #<User id: 2, ... >, #<User id: 5,... >]
>> p.contributor_memberships
]] ProjectMembership Load (1.3ms)
]] SELECT * FROM "project_memberships"
]] WHERE ("project_memberships".project_id = 1
]] AND ((project_memberships.contributor = 't')))
=> [#<ProjectMembership id: 2, user_id: 2, ... >, #<ProjectMembership
id: 3, user_id: 5, ... \
but p.contributors *should* generate the following query:
SELECT "users".name FROM "users"
INNER JOIN project_memberships ON users.id =
project_memberships.user_id
WHERE (("project_memberships".project_id = 1)
AND ((project_memberships.contributor = 't')))
;
which gives the expected result in script/dbconsole.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Hobo
Users" 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/hobousers?hl=en
-~----------~----~----~----~------~----~------~--~---