检索日期时js.erb奇怪的错误

时间:2011-12-29 03:24:31

标签: jquery ruby-on-rails

我有一个日历设置,其中日期显示在旋转木马上,任务可以分配给每一天。我已经设置了一个很好的jquery对话框来输入任务,我现在正在尝试创建一个ajax响应。提交后,应将我的数据发送到服务器并通过create.js.erb页面更新页面。为了做到这一点,我必须从我的@log_entry变量中提取日期并使用jquery更新并将该条目添加到该指定日期的轮播条目。但是,出于某种原因,我似乎无法从用于保存到数据库的@log_entry变量中提取日期。当我进行像alert(<%= @log_entry.date %>);之类的简单测试时,它会返回一个奇怪的数字,我认为它代表了一年,1978年,我在旋转木马上前进的每一天似乎减少了一个。以下是有问题的代码:

控制器:

def create
  @athlete = current_user
  @log_entry = @athlete.log_entries.create(params[:log_entry]) 
  respond_to do |format|
    format.html { redirect_to log_entries_path }
    format.js
  end
end

create.js.erb

alert(<%=  @log_entry.date %>);

我不清楚为什么它会像1978年那样警告某些事情,它可能在哪里获得这个数字?在我保存并输入LogEntry.last.date.to_s之后的控制台中,我得到“2012-01-03”。看着服务器一切似乎都有意义。这似乎是唯一无法正确显示的属性,因为当我把它改为:alert(<%= @log_entry.id %>);我得到了该条目的正确ID。如果它有所帮助我注意到在12月31日这一年减少了一直到最终达到1968年然后当我改为1月1日它跳到2010年然后继续每天减少一个。

任何想法?我正在使用rails 3.0.0

如果它有助于服务器登录以保存条目,那么还有一些信息:

Parameters: {"commit"=>"Save", "log_entry"=>{"workouts_attributes"=>{"0"=>
{"time_of_day"=>"AM", "summary"=>"d", "workout_times_attributes"=>{"0"=>
{"duration"=>"0:00", "zone"=>"1", "_destroy"=>"false"}}}}, "date"=>"Wed Dec 28 00:00:00
 -0700 2011"}, "authenticity_token"=>"yKFf4cWujAaNITVthwX9Y7StXJc9eVjdT2v8DStD1C8=",
 "utf8"=>"\342\234\223"}
  Athlete Load (0.3ms)  SELECT "users".* FROM "users" WHERE ("users"."type" = 'Athlete') 
AND ("users"."id" = 1) LIMIT 1
  SQL (0.5ms)  INSERT INTO "log_entries" ("athlete_id", "created_at", "date", "feel", 
"updated_at") VALUES (1, '2011-12-29 03:22:36.337600', '2011-12-28', NULL, '2011-12-29 
03:22:36.337600')

谢谢, ģ

1 个答案:

答案 0 :(得分:1)

我认为警报功能对如何正确呈现日期感到困惑。首先尝试将其传递给JavaScript Date对象:

var date = new Date(<%=  @log_entry.date %>);
alert(date);