次のように時間値を設定しようとしている time_select があります。
<%= f.time_select :start_time, :value => (@invoice.start_time ? @invoice.start_time : Time.now) %>
これにより、@invoice.start_time の値ではなく、現在の時刻を含む時間セレクターが常に生成されます。
@invoice.start_time は実際には日時オブジェクトですが、これを使用すると時間セレクターに問題なく渡されます
<%= f.time_select :start_time %>
私が本当に求めているのは、 time_select ヘルパーで :value オプションを使用する方法だと思います。次のような試みでは、望ましい結果が得られないようです。
<%= f.time_select :start_time, :value => (Time.now + 2.hours) %>
<%= f.time_select :start_time, :value => "14:30" %>