ruby范围的良好语法

时间:2014-09-09 16:39:17

标签: ruby-on-rails ruby scope named-scope

我只想知道是否有办法这样做:

我想要一个"邀请"我的用户类创建一个用户列表的方法,这些用户的referral_code等于self.confirmation_token

我尝试了很多东西,最后一件事几乎是好的我知道,但我有语法错误......

scope :invited, -> {|u| where("referral_code = ?", confirmation_token)}

ofc我的意思是我想迭代数据库中的每个用户(| u |)

1 个答案:

答案 0 :(得分:1)

你可以写:

scope :invited, ->(token) { where("referral_code = ?", token) }

然后:User.ivited(some_token),但如果您需要具有相同referral_codeconfirmation_token字段的用户,则可以写下:

scope :invited, -> { where "referral_code = confirmation_token" }



根据你的评论(I need users who have the same referral_code than the confirmation_token of the user caller of the method invited),你可以写:

def invited
  where "referral_code = ?", confirmation_token
end

然后:User.last.invited