単に乾燥させたい場合は、一時変数を使用できます。
x = ClassName.method
x.blank? ? false : x
x = PROFESSIONAL_ROLES.key(self.professional_role)
x.nil? ? 948460516 : x
一時変数を使用したくない場合は、ブロックを使用できます。
Proc.new do |x| x.blank? ? false : x end.call(ClassName.method)
Proc.new do |x| x.nil? ? 948460516 : x end.call(PROFESSIONAL_ROLES.key(self.professional_role))
説明するケース(デフォルトチェックが失敗したときに元の値を使用したい場合)の場合、ヘルパーメソッドを作成するのは簡単です。
def x_or_default(x, defval, checker = :nil?)
if x.send(checker) then defval else x end
end
x_or_default(ClassName.method, false, :blank?)
x_or_default(PROFESSIONAL_ROLES.key(self.professional_role), 94840516)
||
これは説明した方法と非常に似ていますが、あなたのblank?
例でも機能します。
私は通常、この種のものに一時変数を使用します。