3

日時型の列startがあり、これをテキスト フィールド (日付ピッカーを追加するため) および time_select として表示したいと考えています。さまざまな方法でこれを試しましたが、1 つは fields_for/simple_fields_for を使用することでした。

<%= f.simple_fields_for :start do |start| %>
  <%= start.input :date, :as => :string, :input_html => { :class => 'datepicker'} %>
  <%= start.input :time, :as => :time, :minute_step => 5, :input_html => { :class => 'input-small'}  %>
<% end %>

この 2 つのフィールドをモデルの必要な日時列に変換するにはどうすればよいですか? または、データベースの 1 つのフィールドに一致するフォームに 2 つのフィールドを表示するより良い方法はありますか?

4

2 に答える 2

4

コントローラーで個別のパラメーターを解析し、それらを組み合わせて日時を作成する必要があります。

StartTime というモデルを作成して解析することをお勧めします

...アプリ/モデル/start_time.rb

class StartTime
  extend ActiveModel::Naming

  attr_accessor :date, :time

  def initialize(date, time)
    @date = date.is_a?(String) ? Date.parse(date) : date
    @time = time
  end

  def to_timestamp
    # parse @date and @time into Datetime

end

Chronic は、文字列から日付/時刻を解析するのに役立つ gem です

お役に立てれば

于 2012-05-03T23:06:06.470 に答える
0

2 つのフィールドを組み合わせて datetime を形成する代わりに、Jquery timepicker を使用できます。

これをチェックしてくださいhttp://trentrichardson.com/examples/timepicker/

于 2012-05-04T08:29:47.600 に答える