今日の日付は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 <%= 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
免責事項:
初めて保存するときにのみ実行されるbefore_createを使用することもできます。必要に応じて – Thounder
手掛かりありがとう、@Mario Carrion 'before_save'コールバックを使って、選択した日付を保存することができます。 – SamuraiBlue