Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 有人能用ruby给我解释一下这个代码吗?_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 有人能用ruby给我解释一下这个代码吗?

Ruby on rails 有人能用ruby给我解释一下这个代码吗?,ruby-on-rails,ruby,Ruby On Rails,Ruby,有人能给我解释一下这个代码背后的逻辑吗 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 我

有人能给我解释一下这个代码背后的
逻辑吗

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社区是全新的,我无法理解该函数返回的是什么,以及该函数的总体功能是什么?

这似乎是rails activerecord模型的一部分

它是一个类方法,返回满足给定条件的第一条记录,如下所示:

  • warden\u条件
  • 降级用户名或电子邮件必须等于
    sign.downcase
SQL等效项应为

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

这似乎是rails activerecord模型的一部分

它是一个类方法,返回满足给定条件的第一条记录,如下所示:

  • warden\u条件
  • 降级用户名或电子邮件必须等于
    sign.downcase
SQL等效项应为

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

这似乎是rails activerecord模型的一部分

它是一个类方法,返回满足给定条件的第一条记录,如下所示:

  • warden\u条件
  • 降级用户名或电子邮件必须等于
    sign.downcase
SQL等效项应为

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

这似乎是rails activerecord模型的一部分

它是一个类方法,返回满足给定条件的第一条记录,如下所示:

  • warden\u条件
  • 降级用户名或电子邮件必须等于
    sign.downcase
SQL等效项应为

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

返回的是一个活动记录关系——在本例中是一条记录。因为该方法以
self
开头,所以它是一个类方法,这意味着它不在单个实例上操作,而是“代表整个类”
其中
,当这样使用时,意味着它在self上运行,self也是类


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

返回的是一个活动记录关系—在本例中是一条记录。因为该方法以
self
开头,所以它是一个类方法,这意味着它不在单个实例上操作,而是“代表整个类”
其中
,当这样使用时,意味着它在self上运行,self也是类


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

返回的是一个活动记录关系—在本例中是一条记录。因为该方法以
self
开头,所以它是一个类方法,这意味着它不在单个实例上操作,而是“代表整个类”
其中
,当这样使用时,意味着它在self上运行,self也是类


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

返回的是一个活动记录关系—在本例中是一条记录。因为该方法以
self
开头,所以它是一个类方法,这意味着它不在单个实例上操作,而是“代表整个类”
其中
,当这样使用时,意味着它在self上运行,self也是类


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

谢谢,您能解释这部分代码吗。其中(条件)。其中([“较低(用户名)=:value或较低(电子邮件)=:value”,{:value=>sign.downcase}])。first@theJava我刚刚做了,
,其中
接受散列或类似SQL的参数。链接两个
,其中
s执行逻辑
。结果在我提供的SQL等价物中进行了描述。我确实得到了SQL查询,但是我缺少了一些代码逻辑。如果不是从项中选择条件,
where({a:1,b:2})
转换为
其中a=1和b=2
。此方法所做的是获取满足
warden_条件
标准的记录,以及
用户名
电子邮件
的记录,其中([“attribute_1=:a或attribute_2=:a”,{a:123}])
转换为
其中attribute_1=123或attribute_2=123
。这是一种多次向ActiveRecord查询提供变量而无需重复的方法。请解释这部分代码。其中(条件)。其中([“较低(用户名)=:value或较低(电子邮件)=:value”,{:value=>sign.downcase}])。first@theJava我刚刚做了,
,其中
接受散列或类似SQL的参数。链接两个
,其中
s执行逻辑
。结果在我提供的SQL等价物中进行了描述。我确实得到了SQL查询,但是我缺少了一些代码逻辑。如果不是从项中选择条件,
where({a:1,b:2})
转换为
其中a=1和b=2
。此方法所做的是获取满足
warden_条件
标准的记录,以及
用户名
电子邮件
的记录,其中([“attribute_1=:a或attribute_2=:a”,{a:123}])
转换为
其中attribute_1=123或attribute_2=123
。这是一种多次向ActiveRecord查询提供变量而无需重复的方法。请解释这部分代码。where(条件)。where([“下