2012-04-15 15 views
2

せずに、私はそれが1行に凝縮させることができる場合、私は疑問に思って次のコードがあります。この文を持っているためにとにかくがある場合、私は思っていた一行のif-then else節

if self.id 
    return if Party.find_by_id(self.id).name.downcase == self.name.downcase 
end 

を1行

私はあなたがif statement ? then_statement : else_statementを使用できることを知っていますが、うまくいけば他にはないことがわかります。おそらくbreakまたはcontinueなどですか? (あなたがそれを見た場合、実際のコードに最適化を行うこと自由に感じなさい - それはかなりここでの目的です)

答えて

6
シンプル

、ちょうどそれらを一緒にジャム:)

return if self.id && Party.find_by_id(self.id).name.downcase == self.name.downcase 
+0

DOH!全く考えていなかった...:D – Jonathan

1

これらはすべて等価です:

if some_condition 
    do_something 
end 

if some_condition; do_something; end 

do_something if some_condition; 

some_condition and do_something 

もちろん、あなたの例ではすでに2つの変形を使用しています。

関連する問題