【发布时间】:2009-09-07 16:35:00
【问题描述】:
有人知道我将如何使用 AR 编写该查询吗?
select *, (m.user_id=1) as member from band b join memberships m on m.band_id = g.id;
提前致谢。
【问题讨论】:
标签: sql ruby-on-rails ruby postgresql activerecord
有人知道我将如何使用 AR 编写该查询吗?
select *, (m.user_id=1) as member from band b join memberships m on m.band_id = g.id;
提前致谢。
【问题讨论】:
标签: sql ruby-on-rails ruby postgresql activerecord
这里的假设是你有这样的东西:
class Band < ActiveRecord::Base
has_many :memberships
has_many :users, :through => :memberships
end
class User < ActiveRecord::Base
has_many :memberships
has_many :bands, :through => :memberships
end
class Membership < ActiveRecord::Base
belongs_to :user
belongs_to :band
end
在这种情况下,您可以轻松地执行此查询。
user = User.find(1)
user.bands
但是,您的问题非常模糊,因此,如果这不是您要寻找的内容,请考虑用更多细节来扩展您的问题。您还在您的问题中引用了一个从未定义的别名“g”。
【讨论】:
我不明白您为什么要通过 SQL 查询设置布尔属性。你可以用好的 ol' Ruby 来做到这一点,正如 jdl 所说,它还可以让你使用很多。
class Book
def member?
user_id == 1
end
end
【讨论】: