次のアクションがあります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 を介してリクエストを行うと、追い出されます。これは信じられないほど奇妙だと思います。認証をスキップするために a を追加するbefore_filter
と、追い出されなくなりますが、もちろん認証をスキップしたくありません。通常のリクエストではこのアクションにアクセスできるが、ajax リクエストではアクセスできない理由がわかりません。
ここで何が起こっているのでしょうか?
(私は Rails 3.2.1 を使用しています。念のため。)