繁体   English   中英

谁能用红宝石向我解释此代码?

[英]Can anyone explain me this code in ruby?

谁能解释这个代码背后的logic

def self.find_first_by_auth_conditions(warden_conditions)
    conditions = warden_conditions.dup
    where(conditions).where(["lower(username) = :value OR lower(email)
    = :value", { :value => signin.downcase }]).first
end

我是ruby/rails community新手,我无法理解该函数返回的内容以及该函数的整体功能?

返回的是活动记录关系-在这种情况下,是单个记录。 因为该方法以self开头,所以它是一个类方法,这意味着它不会在单个实例上运行,而是“为整个类说话”。 where ,当像这样裸露使用时,意味着它对自我进行操作,而自我又是该类。

简短的答案:它从此类表示的表中返回第一条记录,该记录与传递的SQL条件以及在条件之后看到的授权条件匹配。

这似乎是来自Rails ActiveRecord模型的一部分。

它是一个类方法,它返回满足以下条件的第一个记录:

  • warden_conditions
  • 小写的用户名或电子邮件必须等于 signin.downcase

SQL等效项应为

SELECT * FROM items WHERE conditions_to_sql AND lower(username) = a_value OR lower(email) = a_value limit 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM