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 ファイルが 1 回しか生成されないためだと思います (完全なページが最初に要求されたときにのみ 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 に答える