如何将日期时间选择器的值保存到数据库?

时间:2011-05-19 12:36:31

标签: sql ruby-on-rails sql-server-2005 ruby-on-rails-3

我无法将来自日期时间选择器的数据保存到我的数据库中。我正在使用Sql Server 2005数据库。

这是我的application.js中的代码

$(function() {
    var dates = $( "#checkin, #checkout" ).datetimepicker({
        dateFormat: 'mm/dd/yyyy hh:MM:ss TT',
        defaultDate: "+1w",
        changeMonth: false,
        numberOfMonths: 2,
        minDate: new Date(),
        onSelect: function( selectedDate ) {
            var option = this.id == "checkin" ? "minDate" : "maxDate",
                instance = $( this ).data( "datetimepicker" ),
                date = $.datetimepicker.parseDate(
                    instance.settings.dateFormat ||
                    $.datetimepicker._defaults.dateFormat,
                    selectedDate, instance.settings );
            dates.not( this ).datetimepicker( "option", option, date );
        }
    });
});

这是我的控制器:

def step2
    @cart = current_cart    

    checkin = params[:checkin]
    checkout = params[:checkout]
    @amenities = Amenity.available(checkin, checkout)

    session[:checkin] = checkin
    session[:checkout] = checkout
end

这是我的datepicker视图:

<%= form_tag :action => 'step2' do %>
   <%= label_tag 'checkin', "From:" %>
   <%= text_field_tag :checkin, params[:checkin] %>
   <%= label_tag 'checkout', "To:" %>
   <%= text_field_tag :checkout, params[:checkout] %>
   <%= submit_tag 'Show Availability' %>
<% end %>

在这里我将开始插入我的数据库:

<%= form_for(@transaction, :validate => true) do |f| %>     
    <%= f.hidden_field :Transaction_Date, :value => Time.now %>
    <%= f.hidden_field :rsv_type, :value => "Online" %>
    <%= f.hidden_field :rsv_status, :value => "Pending" %>
    <%= f.hidden_field :checkin, session[:checkin] %>
    <%= f.hidden_field :checkout, session[:checkout] %>
    #...
<% end %>

需要一些帮助.. :(

2 个答案:

答案 0 :(得分:0)

所以有一件事突然出现在我面前,你已经获得了datepicker值输入id&#39; d as&#34; transaction_checkin&#34;和&#34; transaction_checkout&#34;。这并不意味着他们会在你的参数中

{:transaction =&gt; {:checkin =&gt; ...,:checkout =&gt; ...}}

如果我没有弄错,那就意味着你试图将这些价值从错误的地方拉出来。

checkin = params[:transatcion][:checkin]
checkout = params[:transaction][:checkout]

答案 1 :(得分:0)

您可以使用Date.parse(date_string)将date_string转换为日期格式。或者您可以使用Time.parse(datetime_string)将日期时间字符串解析为Time对象。