0

我有这个

User.new ( gender: auth.extra.raw_info.gender.capitalize, ...)

auth 是一个看起来像这样的哈希

auth => {:extra => { :raw_info => { :gender => ... , .. }, ..} ..}

有时,无论出于何种原因,性别不存在,我希望在创建新用户时为其设置默认值

如果我尝试

gender: auth.extra.raw_info.gender.try(:capitalize) || "Male"

但性别本身不存在,我不能try对性别

使用 gender: auth.extra.raw_info.gender.capitalize rescue "Male"

也不起作用,因为它说我不能在 nil 上使用大写(这是性别)

有没有办法在不为此使用变量的情况下做到这一点(因为它会变得更加混乱)

4

1 回答 1

4

我认为执行此操作的标准方法是使用reverse_merge

auth.reverse_merge! {:extra => { :raw_info => { :gender => "Male" } } }
于 2013-08-29T06:43:31.220 回答