我有以下行动appointments_for_week
:
class StylistsController < ApplicationController
def appointments_for_week
stylist = Stylist.find(params[:id])
date = Time.zone.parse(params[:date])
appointments = stylist.salon.appointments_flat(stylist.id,
(date + 1.day).beginning_of_week.advance(:days => -1),
(date + 1.day).end_of_week.advance(:days => -1) + 1.day)
respond_to do |format|
format.json { render :json => @appointments }
end
end
真正奇怪的事情正在发生。如果我登录然后简单地浏览到此操作的路线,则不会发生任何事情。我得到一个空白页,这是我所期望的。如果我然后转到另一个页面并刷新,我仍然登录,这当然是我所期望的。
但是,如果我通过 ajax 对此操作提出请求,它会将我踢出去。我觉得这非常奇怪。如果我添加一个before_filter
跳过身份验证,我不再被踢出,但我当然不想跳过身份验证。我不明白为什么可以通过常规请求而不是 ajax 请求访问此操作。
这里会发生什么?
(我在 Rails 3.2.1 上,以防万一。)