2012-03-08 3 views
1

난 그냥 레일 3.2.1로 업그레이 드했습니다.text_field 난간의 날짜 설정 3.2.1

jQuery UI datepicker를 사용하여 레일스 text_fields에 날짜를 설정합니다. 이 필드는 데이터베이스에 날짜 열을 설정합니다.

하지만 지금은 작동하지 않습니다.

보기에이 코드가 있습니다.

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

날짜를 변경하지 않으면 모두 잘됩니다. 날짜를 변경하면 레일스는 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는 맞지만 due param은 instans 변수로 설정되지 않습니다. 날짜를 변경하지 않으면 형식이 동일합니다. 내가 그것을 변경하지 않으면, 그것은 작동합니다. 이상한 ..

+0

어떤 레일 버전을 업데이트 했습니까? 그 버전에서 작동 했나요? –

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

편집

당신은 날짜 형식에 대한 몇 가지 옵션이있는 당신을 귀하의 jquery UI 코드를 지정해야합니다. 예제를 보려면이 링크를 참조하십시오. - http://jqueryui.com/demos/datepicker/date-formats.html

+0

이것이 옳습니다. 고맙습니다! 나는 해결책을 내 자신을 foud 있기 때문에 너무 늦게 회신했다. –

0

디버깅하려면 컨트롤러에 어떤 값이 POST되고 있는지 먼저 확인하십시오. 로그를 확인하거나 바이올린과 같은 디버깅 프록시를 사용하십시오.

그런 다음 Rails 콘솔을 사용하여 문제가 발생한 곳을 찾아냅니다.

문제는 루비 (안 레일)의 최신 버전은 유럽 날짜 형식을 가정한다는 것입니다 업데이트되었습니다. 여전히 사용할 수있는 해결 방법 US format