2016-12-06 3 views

答えて

1

代わりに三元ステートメントを使用することができます

jobs.map do |record| 
    [ 
    record.id, 
    record.jobtitle, 
    record.date, 
    (record.expired ? "expired" : "available"), 
    record.views_count 
    ] 

How do I use the conditional operator (? :) in Ruby?

+0

ありがとうございました! –

1

は、あなたのif/else文の 'then' を削除します。 'then'を使用すると、1つのif文で明快になります。また、if/else文を配列外に移動します。だから、:あなたはワンライナーを好き

jobs.map do |record| 
    if (record.expired) 
     x = "expired" 
    else 
     x = "available" 
    end 
    [ 
    record.id, 
    record.jobtitle, 
    record.date, 
    x, 
    record.views_count 
    ] 

場合は、次のような場合/他のために三項演算子?を使用することができます。record.expired ? x='expired' : x='available'

+0

ありがとうございました! :D –

1

私はあなたが必要とするすべてのブラケットで、ゴドウィンの応答からこれを気づきました。

jobs.map do |record| 
    [ 
    record.id, 
    record.jobtitle, 
    record.date, 
    (if (record.expired) then 
     "expired" 
    else 
     "available" 
    end) 
    , 
    record.views_count 
    ] 

私のために働いた、助けてください。

関連する問題