2015-09-09 146 views
1

我有一個模型術語有這些列:名稱,:start_date和:end_date。日期時間沒有正確保存

我用jQuery datetimepicker填充start_date和end_date字段。

使用更好的錯誤,我查了term_params和精細似乎:

>> term_params 
=> {"name"=>"Test", "start_date"=>"09/29/2015 10:51 AM", "end_date"=>"10/08/2015 10:51 AM"} 

,然後我保存對象,以確保它可以節省罰款:

>> @term.save! 
=> true 

然後我檢查的對象,看到start_date是零:

>> @term 
=> #<Term id: 8, name: "Test", start_date: nil, end_date: "2015-08-10 10:51:00", created_at: "2015-09-09 07:51:59", updated_at: "2015-09-09 07:51:59"> 

我搜索了未經許可的start_da日誌以防萬一,無法找到任何東西。

在服務器日誌記錄了這些:

Started POST "/terms" for 127.0.0.1 at 2015-09-09 10:51:27 +0300 
Processing by TermsController#create as HTML 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"uHh88e875EFNI2Iktfiidm5qzgeOop997b+gIrjtSEp1g/cqK1KYBJWhNJhCwo67bojGeJiTD8R/ngs8kmcWsQ==", "term"=>{"name"=>"Test", "start_date"=>"09/29/2015 10:51 AM", "end_date"=>"10/08/2015 10:51 AM"}, "commit"=>"Create Term"} 
    Admin Load (0.2ms) SELECT "admins".* FROM "admins" WHERE "admins"."id" = ? ORDER BY "admins"."id" ASC LIMIT 1 [["id", 1]] 
    (0.1ms) begin transaction 
    SQL (0.4ms) INSERT INTO "terms" ("name", "end_date", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["name", "Test"], ["end_date", "2015-08-10 00:00:00.000000"], ["created_at", "2015-09-09 07:51:27.632512"], ["updated_at", "2015-09-09 07:51:27.632512"]] 
    (2.0ms) commit transaction 
Redirected to http://127.0.0.1:3000/terms 
Completed 302 Found in 27ms (ActiveRecord: 3.4ms) 

我不明白,爲什麼是stat_date缺少從INSERT INTO時,它在參數列表中被髮送。有趣的是,當我一次又一次地嘗試時,它不記錄start_date和end_date,甚至有一次它記錄都很好。

任何線索可能是錯誤的?

萬一你可能想看看它(terms_controller.rb)後面的代碼:

def create 
     @term = Term.new(term_params) 

     if @term.save 
     flash.notice = "Term was created successfully!" 
     redirect_to terms_path 
     else 
     flash.warning = "Something went wrong. Please try again!" 
     render 'new' 
     end 
    end 

private 
    def term_params 
     params.require(:term).permit(:name, :start_date, :end_date) 
    end 
+0

「start_date」的'datatype'是什麼? – Pavan

+0

@Pavan datetime –

+0

什麼是格式? 'MM/DD/yyyy'? – Pavan

回答

1

問題在於格式。當你看着INSERT INTO查詢end_date值更改爲2015年8月10日(YYYY-MM-DD)格式,所以當它涉及到start_date,該值將2015-29-09( yyyy-mm-dd)其中不是有效月份,所以Rails無法保存該值。可能是您需要將格式更改爲dd/mm/yyyy並嘗試。