私は調査を送信する Web サイトをまとめており、訪問者が作成した特定のイベントの日時を指定するオプションを提供しています。
<table>
<tr>
<td><%= text_field(:day, "", placeholder: "DD") %></td>
<td><%= text_field(:month, "", placeholder: "MM") %></td>
<td><%= text_field(:year, "", placeholder: "YYYY") %></td>
<td><%= text_field(:hour, "", placeholder: "HH") %> : <%= text_field(:minute, "", placeholder: "MM") %> </td>
<td><%= radio_button_tag(:ampm, "AM") %></td><td><%= label_tag(:ampm, "AM") %></td>
<td></td>
<td><%= radio_button_tag(:ampm, "PM") %></td><td><%= label_tag(:ampm, "PM") %></td>
</tr>
</table>
私の調査モデルには、フォームに記入するユーザーが指定した時間を表す Time オブジェクトを保持する :time_of_event 属性があります。Time.parse を使用して、ユーザーが指定した 'YYYY-MM-DD HH:MM:00' から Time オブジェクトを作成するつもりです。
私は Rails フォームを使用した経験がほとんどありません。基本的な text_field タグを作成でき、フォームの送信時にそれらのタグの入力を特定のモデルの属性に保存できます。
フォームフィールドの入力を計算し、その計算結果をモデルの属性に保存するにはどうすればよいですか?
言い換えれば、おそらく最終的には次のようになります。
survey.time_of_event = Time.parse(form_params[:year] + '-' + form_params[:month] ...etc)