2011-09-20 180 views
1

我試圖將從datepicker(jquery)收集的值保存到我的數據庫。 問題是,它有時可以正確保存,並且在其他時候我沒有更改它返回NULL的代碼。Params返回爲NULL「有時」

CODE

<%= simple_form_for (@vacay), 
    :url => url_for(:action => 'setVacay', :controller => 'employees'), 
    :method => 'post' do |v| %> 

<%= v.error_notification %> 
<%= v.text_field :dateFrom, :value_method => @vacay %> to <%= v.text_field :dateUntil, :value_method => @vacay %> 

控制器

def setVacay 
@user = current_user 
@vacay = Vacay.new(params[:vacay]) 

@vacay.save 
flash[:success] = "Created vacation request" 
redirect_to :controller => "users", :action => "allemploy" 
end 

IRB登錄

1) 參數:{ 「UTF8」=> 「✓」, 「authenticity_token」=>「b4Uzq7CQvD8qnIBfnr/GmaMCxNjbINxd8CMskmyirPI =「」,「vacay」=>「dateFrom」=>「09/20/2011」,「dateUntil」=>「09/25/2011」,「bring_forward」=>「5」,「employee_id」= >「1」,「使用(「users」,「id」= 1)限制1 AREL(0.4ms)INSERT INTO「vacays」(「bring_forward」,「dateFrom」,「dateUntil」,「user_id」,「employee_id」,「sumVacay」,「created_at」,「updated_at」)VALUES(5,NULL ,NULL, 1,1,NULL,'2011-09-20 01:25:36.804428','2011-09-20 01:25:36.804428')

2)在另一次嘗試時。有時它節省params然後不保存之後或反之亦然

AREL(0.4ms)INSERT INTO「vacays」(「bring_forward」,「dateFrom」,「dateUntil」,「user_id」,「employee_id」,「sumVacay」 ,「created_at」,「updated_at」)VALUES(5,'2011-01-09','2011-02-09',1,1,NULL,'2011-09-20 01:32:54.097928', '2011-09-20 01:32:54.097928') 重定向到http://localhost:3000/all 已完成302在336ms中找到

回答

0

這是日期本地化問題嗎? 2011年9月20日和2011年9月25日的日期顯然是mm/dd/yyyy格式,但它們被解析爲dd/mm/yyyy格式,將會失效。這可能解釋了爲什麼有些日期能夠通過而另一些不能。

在實際上將值插入到數據庫中的情況下,給出的日期在任何一種格式下都是有效的 - 9/2/2011是一種有效值,無論採用何種方式解釋,儘管如果日期切換,插入的值進入數據庫將不會如預期的那樣。您是否想要從1月9日至2月9日或9月1日至2日預訂假期?

+0

非常感謝,它的工作。 – RedRory

相關問題