2012-12-05 64 views
0

我正在構建一個任務管理系統並在其中實現了fullcalendar.js。我需要獲取待處理任務並更改這些待處理任務的顏色。我在rails控制器中獲取了待處理任務細節的實例變量。但在ajax請求中,我無法循環它。ajax訪問欄實例變量並循環它

請在下面找到我的代碼。

$('.task_name').live('click', function() { 
    alert(this.id); 
    $.ajax({ 
     url: 'pending_task_details', 
     data: { 
      task_id: this.id 
     }, 
     success: function (data, response, event, date) { <% 
      for date_cell in @[email protected]_tasks.end_date %> getCellFromDate(date_cell, calInstance); <% end %> 
     } 
    }); 
}); 

以上是我需要實現的邏輯。但是我沒有在視圖中看到@ pending_tasks.start_date。

在我收到的任務控制檯的詳細信息

在任務控制器我收到掛起任務。

def pending_task_details 
    @pending_tasks = Task.find_by_id(params[:task_id]) 
    p "The pending tasks are......",@pending_tasks.inspect 
#(Date.parse(@pending_tasks.start_date.to_s)..Date.parse(@pending_tasks.end_date.to_s)).each { |date| render :json=>[date.strftime('%a %d %b %Y')] and return} 
    render :nothing=>true 
    end 

回答

0

我認爲錯誤是因爲你正在使用AJAX,因此你的JavaScript文件被生成一次(僅當全頁面第一次請求您的Ruby代碼被執行)。

嘗試下載這個例子,並檢查它是如何做沒有(這是工作的例子!):

https://github.com/bokmann/rails3_fullcalendar

基本上就可以了,而不必這樣:

$.ajax(...) 
...for date_cell in @[email protected]_tasks.end_date 

有這樣的:

$.read(
    '/tasks/54', 
    function (response) { 
    // do something with task here 
    } 
); 
// => [GET] /tasks/54 

結帳this bokmann在他的rails3-fullcalendar示例中使用的jQuery REST插件。