0

我正在构建一个任务管理系统并在其中实现了 fullcalendar.js。我需要获取待处理任务并更改这些待处理任务的颜色。我在 rails 控制器中获取待处理任务详细信息的实例变量。但是在 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 @pending_tasks.start_date..@pending_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 
4

1 回答 1

0

我认为错误是因为您使用的是 AJAX,因此您的 javascript 文件仅生成一次(您的 ruby​​ 代码仅在第一次请求完整页面时执行)。

尝试下载此示例(这是工作示例!)并检查它是如何完成的:

https://github.com/bokmann/rails3_fullcalendar

基本上你可以,而不是这样:

$.ajax(...)
...for date_cell in @pending_tasks.start_date..@pending_tasks.end_date

拥有这个:

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

查看 bokmann 在他的 rails3-fullcalendar 示例中使用的这个jQuery REST 插件。

于 2012-12-17T09:47:55.323 回答