我无法绕过这个if语句。它有一个条件,紧接着是一个块。这是什么意思/你为什么选择这样做?这来自Devise源代码。
if validate(resource){ hashed = true; resource.valid_password?(password) }
remember_me(resource)
resource.after_database_authentication
success!(resource)
end
答案 0 :(得分:1)
Devise::Strategies::Authenticable#validate
接受一个阻止。
您发布的代码是简短形式:
validated = validate(resource) do
hashed = true
resource.valid_password?(password)
end
if validated
remember_me(resource)
resource.after_database_authentication
success!(resource)
end
他们为什么要这样写呢? - 没有想法。可能是因为没有rubocop。