2012-03-08 59 views
1

我剛剛升級到rails 3.2.1。在text_field rails中設置日期3.2.1

我使用jQuery UI datepicker在rails text_fields中設置日期。該字段在數據庫中設置日期列。

但是,現在它不起作用。

我在視圖中有這段代碼。

<%= p.text_field :due, :value => Time.now.strftime("%m/%d/%Y"), :id => "dialog_project_date" %> 

如果我不改變日期一切順利。如果我更改日期Rails將nil放入數據庫中。當我禁用jQuery datepicker並手動輸入日期(使用正確的格式)時,也會發生這種情況。

在我看來,有什麼用軌道處理日期字段的格式的方式。

我找不到解決方案。有人有想法嗎?

更新

我曾經在創建操作調試器。這裏的otuput

(rdb:22) params 
{"utf8"=>"✓", "authenticity_token"=>"4IChBeyKzkc4dwzje1RMPy2GBTMs5m2zrBPBFbIIKJw=",   "project"=>{"name"=>"gunnaer", "description"=>"", "due"=>"03/17/2012", "customer_id"=>""},  "commit"=>"Save", "controller"=>"projects", "action"=>"create_index"} 
(rdb:22) @project 
#<Project id: nil, name: "gunnaer", description: "", due: nil, active: true, budget: nil, hour_price: nil, firm_id: 1, customer_id: nil, created_at: nil, updated_at: nil> 
(rdb:22) @project.due = "03/17/2012" 
"03/17/2012" 
(rdb:22) @project 
#<Project id: nil, name: "gunnaer", description: "", due: nil, active: true, budget: nil, hour_price: nil, firm_id: 1, customer_id: nil, created_at: nil, updated_at: nil> 

的params爲正確的,但由於PARAM不被設置爲instans變量。當我不更改日期時,格式是相同的。當我不改變它時,它就會起作用。 奇怪..

+0

你更新哪些Rails版本?它是否適用於該版本? – 2012-03-08 23:27:28

+0

從3.1更新,它確實工作。 – 2012-03-09 06:48:59

回答

2

您的日期格式錯誤。嘗試使用 「YYYY/MM/DD」

這工作:

ruby-1.9.2-p290 :002 > b = Blog.first 
=> #<Blog id: 1, title: "Something", created_at: "2012-03-09 13:38:23", updated_at: "2012-03-09 13:38:32"> 
ruby-1.9.2-p290 :003 > b.created_at 
=> Fri, 09 Mar 2012 13:38:23 UTC +00:00 
ruby-1.9.2-p290 :004 > b.created_at = "2012/03/17" 
=> "2012/03/17" 
ruby-1.9.2-p290 :005 > b.save 
=> true 
ruby-1.9.2-p290 :006 > Blog.first 
=> #<Blog id: 1, title: "Something", created_at: "2012-03-17 00:00:00", updated_at: "2012-03-09 13:58:55"> 

這不:

ruby-1.9.2-p290 :007 > b.created_at = "03/17/2012" 
=> "03/17/2012" 
ruby-1.9.2-p290 :008 > b.save 
=> true 
ruby-1.9.2-p290 :009 > Blog.first 
=> #<Blog id: 1, title: "Something", created_at: nil, updated_at: "2012-03-09 13:59:22"> 

編輯

您有日期格式,有幾個選項,你應該在你的jQuery UI代碼中指定。看到這個鏈接的例子 - http://jqueryui.com/demos/datepicker/date-formats.html

+0

這是對的。謝謝!我很晚纔回復,因爲我找到了自己的解決方案。 – 2012-03-14 14:04:11

0

要調試,首先看看什麼值被髮送到您的控制器。請檢查日誌或使用調試代理(如小提琴)。

然後使用Rails控制檯找出發生問題的位置。

更新

的問題是,紅寶石(未Rails)的最新版本假定歐洲日期格式。解決方法仍在使用US format