

## やりたいこと

hour:1 minute:2 second:3 とデータがある場合 → viewで`1時間2分3秒`と表示したい

## 分岐条件

hourはnilの可能性があるので、hourがnilの場合は時間は表示させない。  
minute,secondは値が入っている。

## 質問

普通にifで条件分岐させるやり方しか思いつかないのですが、メソッドなどでスッキリ実装させる方法はないでしょうか。

## コード

[code]

      unless result.run_hour.nil?
        hour = result.run_hour.to_s + "時間"
      else
        hour = ""
      end
    
      unless result.run_minute.nil?
        minute = result.run_minute.to_s + "分"
      else
        minute = ""
      end
    
      unless result.run_second.nil?
        second = result.run_second.to_s + "秒"
      else
        second = ""
      end
    
      hour + minute + second
    
[/code]


CC BY-SA 3.0
2018-03-22T12:44:01.633
42579
2018-03-23T02:15:50.680
2018-03-23T02:15:50.680
2238
25446
question
ruby-on-rails ruby
rails 時間分秒の表示方法


スッキリしてるかどうかわかりませんが、こんな感じでどうでしょう。

[code]

    [hour,minute,second].zip(["時","分","秒"]).select(&:first).join
    
[/code]


CC BY-SA 3.0
2018-03-22T13:00:07.177
42580
2018-03-22T13:00:07.177
3249
42579
answer


こういう書き方もできます。

[code]

    "#{hour&.to_s&.+'時間'}#{minute&.to_s&.+'分'}#{second&.to_s&.+'秒'}"
    
[/code]


CC BY-SA 3.0
2018-03-22T13:31:12.963
42583
2018-03-22T13:31:12.963
9608
42579
answer