设置一个等于它自己的变量,除非它不存在

Bri*_*ich 1 ruby variables ruby-on-rails

我正在解析Linkedin API,你可以请求各种字段及其值.有时用户具有字段的值,有时则不具有.

例如,如果用户没有输入电话号码,则Linkedin不会返回电话号码字段.

示例请求到Linkedin

email, firstName, lastName, phoneNumber

示例来自Linkedin的回复:

{"email"=>"test@example.com", "firstName"=>"Brian", "lastName"=>"Weinreich"}
Run Code Online (Sandbox Code Playgroud)

所以,我要求4件事:email, firstName, lastName, phoneNumber它只返回3件事.我想知道是否有一种更快/更有效的方法来设置一个等于这些值的变量,具体取决于它们是否存在.

这就是我这样做的方式......但这似乎是多余的.

@user.email = profile['emailAddress'] ? profile['emailAddress'] : ""
@user.phone_number = profile['phoneNumber'] ? profile['phoneNumber'] : ""
@user.first_name = profile['firstName'] ? profile['firstName'] : ""
@user.last_name = profile['lastName'] ? profile['lastName'] : ""
Run Code Online (Sandbox Code Playgroud)

DNN*_*NNX 8

@user.email = profile['emailAddress'] || ""
@user.phone_number = profile['phoneNumber'] || ""
@user.first_name = profile['firstName'] || ""
@user.last_name = profile['lastName'] || ""
Run Code Online (Sandbox Code Playgroud)