Ruby on rails Rails使用find_或create_by、create_with和可选链接向上插入
我正在使用下面的代码来升级我的模型,该模型工作正常但冗长。我想通过使用Ruby on rails Rails使用find_或create_by、create_with和可选链接向上插入,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 4,我正在使用下面的代码来升级我的模型,该模型工作正常但冗长。我想通过使用find_或
find_或
,create_with
和可选链接来缩短它,但它没有按预期工作
有人能给我一些建议吗
详细的代码-
user_attr = {
first_name: 'Scarlett',
last_name: 'Johansson',
profession: 'Actress',
address: 'Los Angeles'
}
....
existing_user = User.find_by(first_name: user_attr.fetch(:first_name),
last_name: user_attr.fetch(:last_name))
if existing_user
existing_user.update!(user_attr)
else
User.create!(user_attr)
end
Output:
# => #<User id: 2, first_name: "Scarlett", last_name: "Johansson", profession: "Actress", address: "Los Angeles">
参考-您可以
首先通过查找或创建,然后更新:
user=user.find\u或\u create\u by!(姓:“斯佳丽”,姓“约翰逊”)
user.update!(职业:“女演员”,地址:“洛杉矶”)
您可以首先通过查找或创建,然后更新:
user=user.find\u或\u create\u by!(姓:“斯佳丽”,姓“约翰逊”)
user.update!(职业:“女演员”,地址:“洛杉矶”)
User
.create_with(user_attr)
.find_or_create_by(first_name: user_attr.fetch(:first_name),
last_name: user_attr.fetch(:last_name))