如果在Ruby中使用Tenerary声明

我是Rails的新手,想知道以下内容:

有没有办法进一步简化这一过程?

conda env create -f 'path to file'\NW_BI.yml

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

  animal = Animal.find_by(name:name,type:type)
  if !animal
    animal = Animal.create(name:name,type:type)
zhouyu2020 回答:如果在Ruby中使用Tenerary声明

尝试find_or_create_by

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

在您的特定情况下,answer of Mark是更好的答案。但是,我想为您提供目前的解决方案。

Ruby允许使用内联修饰符-if /除非声明。看起来像这样:

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

您还可以在此处使用||=运算符(我偏爱它)。仅当变量当前具有伪造的值(nilfalse)时,此运算符才将变量具有的权利分配给变量。

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

# or if you prefer the longer one-liner
animal = Animal.find_by(name: name,type: type) || Animal.create(name: name,type: type)
,

又一个变种:

animal = Animal.find_by(name:name,type:type) || Animal.create(name:name,type:type)
本文链接:https://www.f2er.com/3163828.html

大家都在问