質問: 【行いたいこと】 RailsでRESTフルなリソースを扱うアプリを開発しています。 アプリはユーザ認証機能を備えており、 RESTフルなリソースの操作(作成や削除など)はログインしたユーザだけが行えます。 ログインしていないユーザがこれらの操作をおこなうリクエストを送ってきた場合には、 認証ページに遷移させ、ユーザがログインした直後に、 ユーザ操作なしで当初のアクセスに対する操作処理を行いたいです。 【もくろみ】 ログインしたユーザだけが行える操作へのアクセスは、 フィルタ(before_filter)を使いインターセプトし、 ログインしていないユーザの場合には認証ページにリダイレクトします。 インターセプタ時点でリクエスト情報をセッションに格納しておき、 ログイン後にセッションからリクエスト情報を取り出し、 その情報を使ってリダイレクトすれば良いと考えました。 【問題点】 GETリクエスト(GETメソッドでのHttpリクエスト)をインターセプタした場合は上手くいきましたが、 POSTリクエストではリクエストを復元できません。 GETメソッドのリクエストになってしまいます。 リダイレクト(redirect_to)はブラウザにGETリクエストしか要求できないためです。 何か解決策はありますでしょうか。 よろしくお願いします。
回答: えーっと、試してみました。できませんでした。 newやeditのアクションへ行く時に認証を行っていたので気づきませんでした。。 で、質問からもうかなり時間が経っているので、なんとなく投稿します。 で、ログイン機能もどきとか実装して確認するのが面倒くさいのでほんとうまくいくか分かりませんが、 before_filterで実行される処理の始めでPOSTデータをセッションに格納して、ログイン後に復元すればいいのではと思ったのですが、これでは無理なんですっけ? paramsからではなくsessionからの復元になりますけど・・。