ruby および ruby on rails の初心者で、simple_form を使用して複雑なフォームを作成しようとしています。すべてがすでに機能していますが、「時間」フィールドを非常に具体的な方法でカスタマイズしたかったのです。
私が使用する場合:
<%= f.input :hour %>
00 から 23 までのオプションが入力された「時間」フィールドと、00 から 59 までのオプションが入力された「分」フィールドの 2 つの選択フィールドをレンダリングします。
しかし、それは私が望むものではありません。時間の 2 つの選択フィールドの使用を、事前入力されたカスタム オプションを含む 1 つの選択フィールドに置き換えたいと思います。時間の範囲は、午前 8 時から午後 22 時までで、15 分刻みです。構文 "8h00"、"8h15"、"8h30"、"8h45"、"9h00"、"18h00"、"18h15"、"18h30"、"18h45" など。"21h45" は利用可能な最後のオプションです。
これらのオプションを使用して、もう少しカスタマイズすることができました。
<%= f.input :hour, :as => :time, :minute_step => 15 %>
これで 15 分のインクリメントの問題は解決されますが、それでも 2 つの選択フィールドがレンダリングされます。
これは、私が simple_form をレンダリングしたかったものと同等の html になります。
<select name="hour">
<option value="08:00:00">08h00</option>
<option value="08:15:00">08h15</option>
<option value="08:30:00">08h30</option>
<option value="08:45:00">08h45</option>
...
<option value="21:30:00">21h30</option>
<option value="21:45:00">21h45</option>
</select>
これは、8..21 からループし、'00'、'15'、'30'、'45' で再びループし、次の構文でオプションを出力するコレクションを使用して実装するのが非常に簡単であると確信しています。 (時間 + "h" + 分) が必要です。
カスタムの「日付」フィールドを作成したいのは、1 つのフォームに多くの日付フィールドがあるためです (作成中の「予定」関連のアプリケーション用)。しかし、私は ruby on rails の初心者なので、これを実装するための最もスマートな方法は何か、本当に迷いました。simple_form にカスタム フィールドを実装する必要があるかどうか、ヘルパー関数を使用する必要があるかどうか、または何を使用する必要があるかがわかりません。