editアクションとupdateアクションの認可に関して
editアクションとupdateアクションと認可の関連性
RESTfulなルーティングを実行している場合、レコード編集ではeditとupdateのアクションが発生します。 ブラウザでは、editの操作をテストできますので、認可の設定が活きているかの判定ができますが、updateメソッドをブラウザが直接叩くなどの操作はできません。 そのため、updateメソッドのテスト(今回は認可を取り上げた)を実施する場合には以下のような手当が必要になります。
RESTfulなルーティングは以下の設定をconfig/routes.rbに書き込みます
resources :hoges
生成されるアクションは以下リンク先の引用を参照してください。
URL アクション HTTPメソッド 説明
/XXXs/:id/edit(.:format) edit GET 編集画面を生成
/XXXs/:id(.:format) update PUT 更新処理
updateメソッドをRSpecで以下のように指定することで、updateまわりのテストが可能になります。
describe "update method" do before { put hoge_path(hoge) }
updateメソッドをテストするには、ブラウザではもちろん対応不可です。RSpecではこれに対し、直接PUTメソッドを実行することでupdateメソッドを使用したテストを実現しています。