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

Shp*_*ord 1 ruby ruby-on-rails

使用Ruby,我如何根据条件设置变量?就像是:

dog_name = params[:dog][:name] if params[:dog]
Run Code Online (Sandbox Code Playgroud)

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

现在,如果params [:dog]为零,我会收到错误.

Jer*_*ten 7

您可以使用&&运算符:

dog_name = params[:dog] && params[:dog][:name]
Run Code Online (Sandbox Code Playgroud)

所以,现在dog_name将是nil,如果params[:dog]不存在,否则这将是价值params[:dog][:name].