【发布时间】:2012-12-19 20:27:16
【问题描述】:
我是 Rails 新手,一直在阅读各种书籍和教程。我有一个简单的(ish)设置,下面的模型和模式。 我正在尝试获取用户详细信息以及 usergroup_membership ID。我想我已经为我想要实现的目标正确设置了模型(关系就像它们出现的那样,用户通过 usergroup_memberships 属于组 - 没什么特别的)。 使用“rails db”,我可以使用原始 SQL 来获取我需要的记录集,但我不知道如何使用 Rails 方式。
我的基础课
Class User
has_many :usergroup_memberships
has_many :usergroups, :through => :usergroup_memberships
Class Usergroup
has_many :usergroup_memberships, :dependent => :destroy
has_many :users, :through => :usergroup_memberships
Class UsergroupMembership
belongs_to :usergroup
belongs_to :user
有效的 SQL
SELECT users.*, usergroup_memberships.id
FROM users
LEFT JOIN usergroup_memberships ON usergroup_memberships.user_id = users.id
WHERE usergroup_memberships.usergroup_id = 1;
上面的 SQL 很好,并返回带有加入的 usergroup_memberships.id 标记的记录集。非常感谢任何有关如何通过 Rails 解决此问题的帮助或文档。
【问题讨论】:
-
有关 Rails 查询的帮助:guides.rubyonrails.org/active_record_querying.html ;您的关联看起来像
has_and_belongs_to_many之一,请看这里:guides.rubyonrails.org/… -
谢谢 - 这是我刚开始时遇到的一些问题。我最终得到了一个完整的表,而不是一个破坏 HABTM 命名约定的连接表。
标签: sql ruby-on-rails activerecord join