Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.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中用一行if语句设置变量?_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 如何在Ruby中用一行if语句设置变量?

Ruby on rails 如何在Ruby中用一行if语句设置变量?,ruby-on-rails,ruby,Ruby On Rails,Ruby,使用Ruby,如何根据条件设置变量?比如: dog_name = params[:dog][:name] if params[:dog] 如果没有设置params[:dog],那么dog_name就不会被设置 现在,如果params[:dog]为零,我将收到一个错误。如何: dog_name = params[:dog][:name] if params.has_key?(:dog) && params[:dog].has_key(:name) 当params[:dog]为零

使用Ruby,如何根据条件设置变量?比如:

dog_name = params[:dog][:name] if params[:dog]
如果没有设置params[:dog],那么dog_name就不会被设置

现在,如果params[:dog]为零,我将收到一个错误。

如何:

dog_name = params[:dog][:name] if params.has_key?(:dog) && params[:dog].has_key(:name)
当params[:dog]为零时,会出现什么错误?

如何:

dog_name = params[:dog][:name] if params.has_key?(:dog) && params[:dog].has_key(:name)
当params[:dog]为零时会出现什么错误?

您可以使用&&运算符:

dog_name = params[:dog] && params[:dog][:name]
dog_name = params.has_key(:dog)
dog_name &&= params[:dog].has_key(:name)
dog_name &&= params[:dog][:name]
因此,如果params[:dog]不存在,则dog_name将为零,否则它将是params[:dog][:name]的值。

您可以使用&&运算符:

dog_name = params[:dog] && params[:dog][:name]
dog_name = params.has_key(:dog)
dog_name &&= params[:dog].has_key(:name)
dog_name &&= params[:dog][:name]

因此,如果params[:dog]不存在,则dog_name将为nil,否则它将是params[:dog][:name]的值。

您还可以使用&&=运算符:

dog_name = params[:dog] && params[:dog][:name]
dog_name = params.has_key(:dog)
dog_name &&= params[:dog].has_key(:name)
dog_name &&= params[:dog][:name]

您还可以使用&&=运算符:

dog_name = params[:dog] && params[:dog][:name]
dog_name = params.has_key(:dog)
dog_name &&= params[:dog].has_key(:name)
dog_name &&= params[:dog][:name]

你试试这个怎么样:

dog_name = params[:dog][:name] unless params[:dog].nil?

你试试这个怎么样:

dog_name = params[:dog][:name] unless params[:dog].nil?

你所做的应该有用

我想params[:dog]实际上不是零。我打赌它是一个空字符串或空散列。您可以通过输出params[:dog].检查日志或标准输出来对此进行检查

Rails有一个空的方法吗?测试nil、空字符串和空集合

尝试:

或:


你所做的应该有用

我想params[:dog]实际上不是零。我打赌它是一个空字符串或空散列。您可以通过输出params[:dog].检查日志或标准输出来对此进行检查

Rails有一个空的方法吗?测试nil、空字符串和空集合

尝试:

或:


你一定是打错了,因为你的代码行写得很好。你一定是打错了,因为你的代码行写得很好。