Ruby on rails ruby作用域的良好语法

Ruby on rails ruby作用域的良好语法,ruby-on-rails,ruby,scope,named-scope,Ruby On Rails,Ruby,Scope,Named Scope,我只想知道是否有办法做到这一点: 我想为我的用户类创建一个“邀请”方法,以创建一个用户列表,这些用户的引用\u代码等于self.confirmation\u令牌 我尝试了很多东西,最后一件几乎是好的,我知道,但我有一个语法错误 scope :invited, -> {|u| where("referral_code = ?", confirmation_token)} ofc我的意思是我想迭代数据库中的每个用户(| u |)您可以这样写: scope :invited, ->(to

我只想知道是否有办法做到这一点:

我想为我的用户类创建一个“邀请”方法,以创建一个用户列表,这些用户的引用\u代码等于self.confirmation\u令牌

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

scope :invited, -> {|u| where("referral_code = ?", confirmation_token)}
ofc我的意思是我想迭代数据库中的每个用户(| u |)

您可以这样写:

scope :invited, ->(token) { where("referral_code = ?", token) }
scope :invited, -> { where "referral_code = confirmation_token" }
def invited
  where "referral_code = ?", confirmation_token
end
然后:
User.ivited(一些令牌)
,但是如果您需要具有相同的
reference\u code
confirmation\u-token
字段的用户,您可以编写:

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


根据您的评论(
我需要与所邀请方法的用户调用方的确认令牌具有相同转诊代码的用户
),您可以写:

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

然后:
User.last.invested

试试这个
scope:invested,->{where(“reference\u code=confirmation\u token”)}
所以
def self.invested(token).
将是推荐的选项。谢谢!但是我需要的用户具有与被邀请方法的用户调用者的确认令牌相同的引用令牌