Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails If-Elseif-Else速记_Ruby On Rails - Fatal编程技术网

Ruby on rails Rails If-Elseif-Else速记

Ruby on rails Rails If-Elseif-Else速记,ruby-on-rails,Ruby On Rails,在Rails中,我知道用If-Else来表示这一点 if a==b do_something(a) else do_something(b) end 速记a==b?做事(a):做事(b) 我如何在andif elseif else语句中表示这一点 if a==b do_something(a) elsif a==c do_something(c) else do_something(b) end 您可以尝试以下方法: (a == b) ? do_something

在Rails中,我知道用If-Else来表示这一点

if a==b 
 do_something(a)
else 
  do_something(b) 
end
速记
a==b?做事(a):做事(b)

我如何在and
if elseif else
语句中表示这一点

if a==b 
 do_something(a)
elsif a==c 
  do_something(c)
else
  do_something(b) 
end
您可以尝试以下方法:

(a == b) ? do_something(a) : (a == c) ? do_something(c) : do_something(b)


称之为速记不太准确。这是表示条件的。没有elsif版本

至于让代码更干净,如果你有很多elsif,case语句会读得更好

case a
when b then do_something
...
end

我个人最喜欢的是,将你的条件封装在一个意图揭示的私有方法中,或者如果它足够复杂,它就是自己的对象

你没有。试图缩短它只会降低可读性,你为什么要这样做?需要在我的视图中完成,bcos我需要将css类分配给特定的标签,这是我唯一干净的选择。私有方法已过时,但我仍然建议将其放在某个方法中,而不是在您的视图中使用复杂的条件。
case a
when b then do_something
...
end