railsなら当然ログイン機能だって一から作るわきゃーない。
プラグインがあるわけだけど、いくつかある。
1.login_engine
2.login_generator
3.Acts_as_authenticated
1は、もう開発がされてないっぽいので辞めたほうがいい。
2が今現在ググったりしてると一番目に付くが、今回は3を採用することにした。
というのも3は2の拡張ということで、普通に考えれば2より良いもののはずだからだ。
追記(6/1):Acts_as_authenticatedももはやメンテナンスされないらしく、今後はrestful_authenticationってやつらしいです。はい。失礼しました。
ここのサイトを参考に勧める。
http://wiki.rubyonrails.org/rails/pages/Acts_as_authenticated
あと、認証の条件として、amazonとかみたいにEメールアドレスをIDとして使用する仕様でいく。
1.インストール
コマンドプロンプト立ち上げてアプリケーションルートに移動後
ruby script/plugin install http://svn.techno-weenie.net/projects/plugins/acts_as_authenticated
2.なんかいろいろ生成
RadrailsのGeneratorタブからそれぞれ
authenticated user account
と入れてGO。
※authenticatedはドロップダウンにはないので手入力
3.僕はPostgreSQLなので
CREATE TABLE "users" ( "id" SERIAL NOT NULL UNIQUE, "login" TEXT, "password" TEXT, PRIMARY KEY("id") ) WITH OIDS;
とテーブル作成
うわさではコレでとりあえず動くらしい、ということで
http://localhost:3002/account/
※ふつうポートは3000
にアクセス。エラー
=======================
undefined method `email'
=======================
そらそうだ。
で、ここで気づいたんだけど/acoountにアクセスすると普通だとindexに飛ばされるはずだけど、めぐりめぐってsignupに飛んでいる。account_controller.rbをみてみるとindexに、Userデータが1件もなかったらsignupに飛ぶって書いてあった。
うーん、これって1件でもデータがあったら使われないなんだよね。いるのかな。。
で、まあとにかくエラーの対処として、signup.rhtmlからemail関連のタグをばっさり消す。
これで再度/accountにアクセスしたら無事、表示できました。
うひょーと思って、とりあえず何も入力せずに「sign up」ボタンを押したらエラー。
続きは明日以降で。
コメントする