2012-03-08 13 views
1

私はレール3.2.1にアップグレードしました。テキストフィールドレールの日付を設定する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を無効にして日付を正しい形式で手動で入力するときにも発生します。

レールに日付フィールドの書式設定を処理する方法があるようです。

解決策が見つかりません。誰かがアイデアを持っていますか?

更新

私は作成アクションでデバッガを使用。

(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変数に設定されていない。私は日付を変更しないときの形式は同じです。私はそれを変更しないと、それは動作します。 Strange ..

+0

どのRailsバージョンを更新しましたか?それはそのバージョンのために働いたのですか? –

+0

が3.1から更新され、機能しました。 –

答えて

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"> 

EDIT

あなたは、日付形式、のためのいくつかのオプションを持っているあなたにあなたのjquery UIコードで指定する必要があります。例についてはこのリンクを参照してください。http://jqueryui.com/demos/datepicker/date-formats.html

+0

これは正しいです。ありがとうございました!私は解決策を私の自己に向けているので、私はとても遅く返答した。 –

0

デバッグするには、まずコントローラにどの値がPOSTされているかを確認します。ログを確認するか、フィドルなどのデバッグプロキシを使用してください。

次に、Railsコンソールを使用して、問題の発生場所を特定します。

問題は、Ruby(Railsのではない)の最新版は、欧州の日付形式を想定しているということです更新します。まだ使用する回避策US format

関連する問題