首页 > 解决方案 > 简单的 if 语句到 Ruby 中的 Tenerary

问题描述

我是 Rails 新手,想知道以下问题:

有没有办法进一步简化这个?

  animal = Animal.find_by(name:name, type:type)
  if !animal
    animal = Animal.create(name:name, type:type)

我正在考虑使用三元表达式,但我想知道如何在不重复代码的情况下编写它,或者这是否是正确的做法。

animal = Animal.find_by(name:name, type:type) ? Animal.find_by(name:name, type:type) :  Animal.create(name:name, type:type);

标签: ruby-on-railsrubyternary

解决方案


尝试find_or_create_by

animal = Animal.find_or_create_by(name: name, type: type)

推荐阅读