Ruby on rails 如何在Ruby中用一行if语句设置变量?
使用Ruby,如何根据条件设置变量?比如: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]为零
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、空字符串和空集合 尝试: 或:
你一定是打错了,因为你的代码行写得很好。你一定是打错了,因为你的代码行写得很好。