2014-03-04 67 views

回答

3

我不喜欢看到实际的where代码,所以我通常做这样的:

@invites = User.where.not(invitation_accepted_at: nil).where(invited_by_id: @user.id) 

注意这个用途rails 4语法where.not

+1

我喜欢新的语法,但我不喜欢连接几个where子句(.where(..)。where(...))来获取(... AND ...) 。就像在SQL中,我喜欢只有一个where子句。 –

+1

我个人不介意他们,但其中一个方法是创建类方法('self.invitation_not_accepted') –

1

我猜该字段invitation_accepted_at将是nil,直到邀请被接受为止。因此,这将是查询(使用Rails 3以及兼容):

@invites = User.where("invited_by_id = ? AND invitation_accepted_at IS NOT ?", @user.id, nil)