TDB*_*TDB 5 activerecord ruby-on-rails
在我的 Rails 应用程序中,我想通过电子邮件查找用户,或者如果该用户不存在,则使用该电子邮件以及一些其他属性创建一个用户。有没有比下面的代码更简单的方法来做到这一点,也许使用find_or_create_by?
def set_user
if self.user = User.find_by(email: recipient)
else
self.user = User.create(email: recipient,
password: Devise.friendly_token.first(6),
confirmed_at: DateTime.now)
end
end
Run Code Online (Sandbox Code Playgroud)
小智 5
find_or_create_by采用一个仅在创建时应用的块。它将根据您提供的属性查找记录,如果未找到,则会使用您指定的块属性创建一个记录。
在你的情况下,这看起来像:
user = User.find_or_create_by(email: recipient) do |user|
user.password = Devise.friendly_token.first(6),
user.confirmed_at = DateTime.now
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1959 次 |
| 最近记录: |