Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.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 除了为每个语句设置变量外,是否有任何选项可以在长条件中后置处理返回值?_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 除了为每个语句设置变量外,是否有任何选项可以在长条件中后置处理返回值?

Ruby on rails 除了为每个语句设置变量外,是否有任何选项可以在长条件中后置处理返回值?,ruby-on-rails,ruby,Ruby On Rails,Ruby,为了直观明了,是否有可能以某种方式忽略每个语句的date=,并捕获条件中返回的值并将20添加到其中 (该代码就是一个例子,我自己的代码有10条if语句。) 如果您有10条If语句,那么最好在如下情况下使用case重构代码: def some_method(x) date = if x == 1 Date.today elsif x == 5 Date.today + 2 else Date.today - 2 end date + 20 end 5

为了直观明了,是否有可能以某种方式忽略每个语句的
date=
,并捕获条件中返回的值并将
20
添加到其中

(该代码就是一个例子,我自己的代码有10条if语句。)

如果您有10条If语句,那么最好在如下情况下使用
case重构代码:

def some_method(x)
  date = if x == 1
    Date.today 
  elsif x == 5
    Date.today + 2
  else
    Date.today - 2
  end
  date + 20
end

5+用于在
备选方案时提供案例。
def some_method(x)
  date = if x == 1
    Date.today 
  elsif x == 5
    Date.today + 2
  else
    Date.today - 2
  end
  date + 20
end
def some_method(x)
  date = case x
    when 1; Date.today 
    when 5; Date.today + 2
    else; Date.today - 2
  end
  date + 20
end