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
-~----------~----~----~----~------~----~------~--~---

Reply via email to