blogこの広告は、90日以上更新していないブログに表示しています。Rails久々にRailsを触っていたら、認証プラグインの定番acts_as_authenticatedが、より新しいrestful_authenticationに変わっていることに気づいた。前者は今後保守されないらしいので、乗り換えは必須。新米RESTafarianとしては、RESTfulを名乗っているところにも興味を引かれる。いうわけで触ってみて導入手順を書いたが、RailsのREST実装についての説明も含むので、ちょっと冗長になってしまった。2010/05/24追記。blogインストールまずはrailsアプリケーション作成。今回は2.0.2を使う。authtrial続けて、restful_authenticationプラグインのインストール。インストール実行前にリポジトリを追加登録しておく必要がある。認証用のコンポーネント一式を生成する。sessionsuserはユーザ情報として使うmodelの名前、sessionsはセッション管理用のコントローラ名。このsessionsの存在がこのプラグインをRESTfulたらしめている部分だ、多分。ログインという"独自の動作"を、"セッションというリソースのPOST"と捉えることで、統一インタフェースとリソース指向が保たれる。viewだのcontrollerだのと一緒にユーザ情報テーブルのmigrationファイルが作られているので、さっさとDBを作ってしまう。2.0.2デフォルトのままsqlite3を使うので、特にconfig/database.ymlは編集しない。==========================================$config/routes.rbを編集。この2行はおそらく勝手に追加されている。sessionsではなくsessionである点に注意。'destroy'map.resource(s)は、RESTfulな名前付きルートを追加するためのヘルパーメソッド。単数形(resource)の場合はシングルトンリソース向けのルートを定義することになり、複数形(resources)の場合定義されるいくつかのルートが省略される。セッション情報なんて複数同時に扱うこと無いから単数にすべきなのだろうな。map.signupからの3行も、同様に名前付きルートの定義である。これらは無くてもアプリケーションを動かすことはできるのだが、map.resource(s)がデフォルトで作成するルートのままだとなんだかわかりづらいので、こうして名前を付けてやったほうが直感的でよろしい。*1ここでapp/controllers/users_controller.rbを見てみる。AuthenticatedSystemAuthenticatedSystemをここじゃなくてアプリケーションコントローラにincludeしろ、と言ってきているので、その通りにせねばなるまい。AuthenticatedSystem"の2行を削除する。今度はapp/controllers/application.rbを開いて、includeさせる。timeこれで認証用のヘルパーメソッドを全てのコントローラから使えるようになるわけである。ログイン後にアクセスできるページが欲しいので、コントローラを追加で作成しておく。名前はありがちにwelcomeとする。indexapp/views/welcome/index.html.erbを開いて、次のように編集する。