如何在Ruby中将以下代码减少到一行?

Sre*_*raj 2 ruby ruby-on-rails ruby-on-rails-3

如何在Ruby中将以下代码减少到一行?

unless(current_facebook_user.nil?)
    unless(current_facebook_user.client.nil?)
        unless(current_facebook_user.client.default_params.nil?)
            val = current_facebook_user.client.default_params
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

Joe*_*MAR 13

您可以使用自Rails 2.3.2以来引入的try()方法active_support/core_ext/object/try.rb

val = current_facebook_user.try(:client).try(:default_params)
Run Code Online (Sandbox Code Playgroud)

方法尝试

或直接使用自Ruby 2.3.0引入的安全导航操作符

val = current_facebook_user&.client&.default_params
Run Code Online (Sandbox Code Playgroud)

记录在这里

更多关于安全导航操作员