- お知らせ -
  • 当wikiのプログラムコードの表示を直してみました(ついでに長い行があると全体が下にぶっ飛ぶのも修正)。不具合があればBBSまでご連絡下さい。

Ruby/Ruby on Rails

はじめに Edit

2009/07/23時点で2番目に人気(Ruby Toolbox調べ)のRails用ユーザー認証プラグイン Authlogic についてのメモです。

1番人気のrestful-authentication はコントローラーにコードごってりだけど、Authlogicはモデルよりなので、「コントローラーは最少にしろよ!」主義者にはぴったりじゃね?っていうログイン・プラグインになっているみたいです。

ユーザー権限つまり、ロール管理の機能のないので、
それは別に実装するか、authorization系プラグインが必要になってきます。ためしにAuthlogicと合わせて../acl9 を使ってみてます。

チュートリアル・メモ Edit

公式チュートリアルを見ながら、日本語の解説記事 を見つつ、Authlogicの導入を試している時に気になったことなど。

map.resource,map.resourcesのスペルミス Edit

かなりアフォなミスですが、
map.resource,map.resources のスペルミス orz
すると、scirpt/server や、script/generate controller users なんかでエラー吐いたりします。

(誤) map.resouce →(正)map.resource
(誤) map.resouces →(正)map.resources

エラーメッセージ見ると、よくわかんないところでエラーが出てたりします。

(ruby dir)/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/routing/builder.rb:159:in `build': undefined method `[]' for :account:Symbol (NoMethodError)
        from (ruby dir)/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/routing/route_set.rb:308:in `add_route'
        from (ruby dir)/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/routing/route_set.rb:316:in `add_named_route'
        from (ruby dir)/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/routing/route_set.rb:57:in `method_missing'
        from (my project)/config/routes.rb:20
        from (ruby dir)/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/routing/route_set.rb:226:in `draw'
        from (my project)/config/routes.rb:1
        from (ruby dir)/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:145:in `load_without_new_constant_marking'
        from (ruby dir)/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:145:in `load'
        from (ruby dir)/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
        from (ruby dir)/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:145:in `load'
        from (ruby dir)/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/routing/route_set.rb:286:in `load_routes!'
        from (ruby dir)/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/routing/route_set.rb:286:in `each'
        from (ruby dir)/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/routing/route_set.rb:286:in `load_routes!'
        from (ruby dir)/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/routing/route_set.rb:266:in `reload!'
        from (ruby dir)/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:515:in `initialize_routing'
        from (ruby dir)/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:186:in `process'
        from (ruby dir)/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:113:in `send'
        from (ruby dir)/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:113:in `run'
        from (my project)/config/environment.rb:9
        from (ruby dir)/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
        from (ruby dir)/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
        from (ruby dir)/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:156:in `require'
        from (ruby dir)/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
        from (ruby dir)/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:156:in `require'
        from (ruby dir)/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/commands/server.rb:84
        from (ruby dir)/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
        from (ruby dir)/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
        from script/server:3

あとは、そんなにつまるところはない気がする。

メモ Edit

最終ログイン日付とか取得する方法 Edit

つ User.current_login_at

他にもログイン回数が、User.login_count で取得できます。
また、前回のログイン日付が last_login_at で取得できます。

※ただし、試してみるとわかるのですが、自動ログインしているとカウントされませんし、ログイン日付も更新されません! orz なので注意。
まあ、そういうもんですよね…。

↓↓↓そこで↓↓↓

最終アクセス日付とか取得する方法 Edit

つ User.last_request_at

で自動ログイン時も、実はアクセスするたびに更新されるカラムがありましてlast_request_atで確認することができます。

その他メニュー Edit

参考リンク Edit


No comment. Comments/Ruby/Ruby on Rails/Authlogic?

Name:

Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New Pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2009-12-08 Tue 18:35:23 JST (2848d)