2011-09-20 104 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