2016-04-02 19 views
0

今日の日付はDBに保存するときに設定されます。Rails:DBに保存する日付を指定する方法

たとえば、次のようにビューの時刻を設定します。

from: 8:00 to : 9:30

次のようにこれらの時間が保存されています。

2016-04-03 08:00:00.000000 2016-04-03 09:30:00.000000 (今日は2016年4月3日である)私がやりたいのは何

は、指定された日付に日付を設定することです。

私は同じ見解でdepature dateを持っています。

depature dateについて2016-05-12を選択した場合は、このように保存します。私はdepature dateを選択するために、bootstrap3-datetimepicker-railsを使用

2016-05-12 08:00:00.000000 2016-05-12 09:30:00.000000

schema.rb

... 
create_table "events", force: :cascade do |t| 
    t.time  "from" 
    t.time  "to" 
... 

_schedule_form.html.erb

<%= f.label :title %> 
<%= f.text_field :title, class: 'form-control' %> 
<br> 
    <%= f.label :departure_date %> 
    <div class="input-group date" id="datetimepicker"> 
    <%= f.text_field :departure_date, :value => (f.object.departure_date.strftime('%b/%d/%Y') if f.object.departure_date), class: 'form-control' %> 
    <span class="input-group-addon"> 
     <span class="glyphicon glyphicon-calendar"></span> 
    </span> 
    </div> 
    <script type="text/javascript"> 
    $(function() { 
     $('#datetimepicker').datetimepicker({format:'MMM-DD-YYYY'}); 
    }); 
    </script> 
    <br> 
    <div id="room"> 
    <%= f.simple_fields_for :rooms do |a| %> 
    <div id="room_<%= a.object.object_id %>"> 
     <p class="day-number-element-selector"><b>Day&nbsp;<%= a.index.to_i + 1 %></b></p> 

     <%= a.simple_fields_for :events do |e| %> 
     <span class="form-inline"> 
      <p> 
      <%= e.input :from, label: false %> 
      <%= e.input :to, label: false %> 
      </p> 
     </span> 
     <%= e.input :title, label: false %> 
     <% end %> 
    </div> 

    <%= a.link_to_add "Add event", :events, data: {target: "#room_#{a.object.object_id}"}, class: "btn btn-primary" %> 

    <%= a.input :room %> 

    <% end %> 
    </div> 

あなたはどのように設定するために私を与えることができればそれをいただければ幸いです。私は間違いなくここに関連を欠けているが、これはあなたが必要なものを実装する方法のアイデアを与える必要があります。

class Event < ActiveRecord::Base 
    before_save :assign_date 

    private 

    def assign_date 
    assign_specific_date(to) 
    assign_specific_date(from) 
    end 

    def assign_specific_date(date) 
    date.month = departure_date.month 
    date.year = departure_date.year 
    date.day = departure_date.day 
    end 
end 

免責事項:

答えて

2

あなたが before_saveコールバック、何かこのようなを使用することができます。

+0

初めて保存するときにのみ実行されるbefore_createを使用することもできます。必要に応じて – Thounder

+1

手掛かりありがとう、@Mario Carrion 'before_save'コールバックを使って、選択した日付を保存することができます。 – SamuraiBlue

関連する問題