2

この問題の解決策を何時間も探していました。ここでもスタックオーバーフローに関する推奨事項がたくさんあり、それらすべてを試しましたが、私の場合はどれも機能せず、理由がわかりません。

私のサーバーでは現在のバージョンの RoR [4.1.5] が実行されており、ユーザーが「開始時刻」と「終了時刻」の値を選択する必要があるフォームがあります。

<p>
<%= f.label :Time %><br>
<%= f.time_select :timefrom, {minute_step: 60} %> to <%= f.time_select :timeto, {minute_step: 60} %>
</p>

データベースからデフォルト値を取得します。それらを取得するために、最後に入力された値を収集するだけです。これは通常 1 時間の時間枠です。

<% changetimeto = (Production.select("timeto").last.timeto).strftime("%H:%M")   %>
<% changetimefrom = (Production.select("timeto").last.timeto + 3600).strftime("%H:%M")  %>

だから私は試しました:

<%= f.time_select :timefrom, {minute_step: 60}, :selected => changetimeto %> to <%= f.time_select :timeto, {minute_step: 60}, :selected => changetimefrom %>

または:value =>または:default =>

しかし、何も機能していないようです。エラーも発生しません。変数をチェックインしたところ、 「14:00」changetimetochangetimefor「15:00」などの正しい値が含まれています。しかし、私が言ったように、それは何もしません。

などで時間と分を別々にアドレス指定しようとしまし:default => {hours: '14', minutes: '00'}たが、それも機能せず、エラーも発生しません。何もない。それはまだ実際の時間にデフォルト設定されています。

誰かに私への推奨事項やヒントはありますか?

4

2 に答える 2

6

time_select のデフォルト (コメント スレッドをフォローしていない人向け) は次のように機能します。

<%= time_select :name, 'method', {options}, {:default => {:hour => '10', :minute => '30'}} %>

時刻をデフォルトの 10:30 に選択する場合。

于 2014-08-26T19:51:30.010 に答える
2
f.time_select :start, default: Time.current.change(hour: 9, min: 0)

また

f.time_select :start, default: {hour: 9, min: 0}

参照: https://github.com/rails/rails/blob/94b5cd3a20edadd6f6b8cf0bdf1a4d4919df86cb/actionview/lib/action_view/helpers/tags/date_select.rb#L44

于 2018-12-15T13:57:59.907 に答える