任何人都可以解释一下此代码背后的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
的新手,我无法理解该函数的返回是什么以及此函数的整体功能?
答案 0 :(得分:2)
返回的是活动记录关系 - 在本例中为单个记录。因为该方法以self
开头,所以它是一种类方法,这意味着它不会在单个实例上运行,而是为整个类提供说话'。 where
,当像这样使用时,意味着它在自我上运行,这也是类。
简答:它返回此类所代表的表中的第一条记录,它与传递的SQL条件以及条件之后看到的授权条件相匹配。
答案 1 :(得分:1)
这似乎是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