Rails チュートリアル 10.2.3 演習 1
Rails チュートリアルの演習の ( 自分なりの ) 回答を、メモとして書き残しておく。
10.2.3 の演習 1
フレンドリーフォワーディングで、渡されたURLに初回のみ転送されていることを、テストを書いて確認してみましょう。
次回以降のログインのときには、転送先のURLはデフォルト (プロフィール画面) に戻っている必要があります。
ヒント: リスト 10.29のsession[:forwarding_url]が正しい値かどうか確認するテストを追加してみましょう。
この節でフレンドリーフォワーディングのために、リダイレクトされてログインページに来た場合、
ログイン後に直前にアクセスしようとしていたページに転送するようにしていたので、
それが再度ログインしたときにも転送されない ( デフォルトのリダイレクト先に転送する ) ように…
ということを確認せよ、ということですね ( 多分 )
というわけで、以下のようなテストを書きました。
# ( friendly forwarding は 1 回だけ ) test "forwarding_url must be nil after friendly forwarding" do # フレンドリーフォワーディングを発生させる get edit_user_path(@user) log_in_as(@user) assert_redirected_to edit_user_url(@user) # 一旦ログアウトして、ログインページから再度ログイン、 forwarding_url が nil であること、ユーザページにリダイレクトされることを確認 delete logout_path get login_path assert_nil session[:forwarding_url] log_in_as(@user) assert_redirected_to @user end
些事
Rails の勉強のために作ろうと思っていたプロつく計画ですが、
Rails( というかフレームワーク ) を使うまでもないような気がしてきてどうしよう…というところ。