如何用ActiveRecord编写连接查询?

时间:2009-09-07 16:35:00

标签: 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;

提前致谢。

2 个答案:

答案 0 :(得分:7)

这里的假设是你有一些看起来像这样的东西:

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”。

答案 1 :(得分:0)

我不明白你为什么要通过SQL查询设置布尔属性。你可以用好的'Ruby'来做到这一点,这也可以让你使用jdl说的很多。

class Book
  def member?
    user_id == 1
  end
end