AJAXy-действие доступно через «обычный» запрос - PullRequest
0 голосов
/ 02 июля 2010

Привет,

У меня есть приложение, которое содержит календарь в качестве альтернативного представления индекса для курсов (Project has_many Courses).Там у меня есть две стрелки для перехода к следующему / предыдущему месяцу, он работает через AJAX.Вот мое действие по обновлению календаря:

def update_calendar
  @project = Project.find params[:id]
  @date = Date.parse(params[:date]).beginning_of_month
  @courses = @project.courses.all(:conditions => {:date => (@date - 1.month)..(@date + 1.month)})

  respond_to do |format|
    # format.html { redirect_to :action => 'index' }
    format.js { render :partial => 'calendar', :locals => {:calendar_date => @date, :courses => @courses} }
  end
end

Важная часть - format.js { ... }.Я думал, что он должен просто отвечать на запросы JS / AJAX, но это не так.Он отображает частичное, например, когда я нажимаю на URL http://localhost:3000/projects/1/update_calendar?date=2010-08-01.Я не хочу такого поведения, я просто хочу, чтобы он отвечал правильно, когда он входит через AJAX.Нужно ли использовать request.xhr??И что должен сделать format.js { ... } чем?

С уважением

Тобиас

1 Ответ

0 голосов
/ 02 июля 2010

Вам нужно сообщить ему, что вы хотите, когда кто-то перейдет к этому действию с помощью html-запроса, то есть вам нужно снова вставить свой блок format.html. Если у вас нет скобок, он будет выполнять значения по умолчанию поведение, которое должно показать представление update_calendar. Возможно, вы хотите перенаправить на другое действие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...