2011-12-29 27 views
0

我有一個日曆設置,日期顯示在一個旋轉木馬上,任務可以分配給每一天。我已經設置了一個很好的jquery對話框來輸入任務,我正在嘗試創建一個ajax響應。提交後,它應該將我的數據發送到服務器並通過create.js.erb頁面更新頁面。爲了做到這一點,我必須從我的@log_entry變量中提取日期,並使用jquery更新並將該條目添加到指定日期的輪播條目中。但是,出於某種原因,我似乎無法從用於保存到數據庫的@log_entry變量中提取日期。當我做一個像alert(<%= @log_entry.date %>);這樣的簡單測試時,它會返回一個奇怪的數字,Im asuming表示一年,1978年,這個數字在我每天向前移動傳送帶時似乎減少一次。這是有問題的代碼:js.erb檢索日期時出現奇怪錯誤

控制器:

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 %>);時,我得到了該條目的正確標識。如果它有幫助,我注意到在12月31日之前,年份減少了一個,直到達到1968年,但當我改變到1月1日時,它跳到2010年,然後每天繼續減少一次。

任何想法?我使用的鐵軌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') 

感謝, 摹

+0

好奇它是否會正確格式化,如果你提醒'date.to_s'而不是。 – John 2011-12-29 20:36:00

回答

1

我想報警功能是困惑如何正確顯示日期。嘗試先將它傳遞給JavaScript Date對象:

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

好吧,這似乎解決了部分問題!我現在得到一個迴應:Wed Dec 31 1969 17:00:02 GMT-0700(MST)任何想法爲什麼它仍然是1969年而不是2011年? – Graeme 2011-12-30 16:50:05

+0

不知道這是否會有所幫助,但我會確保您的'日期'字段與updated_at/created_at字段的類型相同(我相信它們設置爲'datetime')。 – John 2011-12-30 19:11:54

+0

謝謝@johnernaut我其實只是通過表單中的隱藏字段傳遞日期對象。這個日期從格式爲'new/2012-01-03'的url中獲取,然後通過'Date.parse(params [:date])傳遞給@date對象'我嘗試將它切換到'DateTime.parse( ......「但我仍然得到相同的結果。 – Graeme 2011-12-30 23:43:38