[Ruby] ユーザー認証エンジン「Devise」で現在ログイン中のユーザーIDを取得する方法
- 2012 4/13
Ruby のユーザー認証まわりの処理をしてくれる Gem 「Devise」で現在ログイン中のユーザーIDを取得する方法を調べたのでメモ。
現在ログイン中のユーザーのモデルは current_user で取得できます。
なので、ログイン中のユーザーIDは下記のように書けば取得できます。
current_user.id |
以上です。
Ruby のユーザー認証まわりの処理をしてくれる Gem 「Devise」で現在ログイン中のユーザーIDを取得する方法を調べたのでメモ。
現在ログイン中のユーザーのモデルは current_user で取得できます。
なので、ログイン中のユーザーIDは下記のように書けば取得できます。
current_user.id |
以上です。
Ruby on Rails で Haml を使っていて以下のようなエラーが発生しました。
■ エラーメッセージ
syntax error, unexpected keyword_ensure, expecting keyword_end |
原因は、if 文の分岐の中をインデントを下げずに、下記のように記載していたせいでした。
%ul.nav を同じインデントで揃えたくて、こう書いたのですが、これがダメでした。
%div.container.nav-collapse %ul.nav %li #{ link_to "Article", "/articles" } - if user_signed_in? %ul.nav %li #{ link_to "Signed in as #{ current_user.email }", "#" } %ul.nav %li #{ link_to "Sign out", destroy_user_session_path, :method => :delete } - else %ul.nav %li #{ link_to "Sign up", new_user_registration_path } %ul.nav %li #{ link_to "Sign in", new_user_session_path } |
正しくは、下記のように書きます。
%div.container.nav-collapse %ul.nav %li #{ link_to "Article", "/articles" } - if user_signed_in? %ul.nav %li #{ link_to "Signed in as #{ current_user.email }", "#" } %ul.nav %li #{ link_to "Sign out", destroy_user_session_path, :method => :delete } - else %ul.nav %li #{ link_to "Sign up", new_user_registration_path } %ul.nav %li #{ link_to "Sign in", new_user_session_path } |
途中から、%ul.nav のインデントが1つ下がってて気持ち悪いですが、出力されるHTMLでは綺麗に同じインデントの階層で並んでいるので、安心しました。
以上です。
Git にて、git commit して Vim 上でコメント書いて、コミットしようとしたらエラーが発生しました。
Git にて .DS_Store
のような無視したいファイルを間違ってコミットしてしまわないように、全てのリポジトリに適用される .gitignore
を作成しました。
Ruby on Rails アプリケーションに、ユーザー認証の仕組みを導入できる「Devise」を使うときに参考になりそうな記事をまとめてみました。
■ 公式
まずは、公式というか、github。
・github:plataformatec/devise
■ Devise の便利サイト(全て日本語)
日本語で一番詳しい Devise のドキュメント。
・Railsの第4世代認証エンジンDeviseのREADMEを翻訳してみた – LazyLoadLife
ASCIIcasts さんの Devise 特集。これも分かりやすい。
・ASCIIcasts – “Episode 209 – Deviseの導入”
・ASCIIcasts – “Episode 210 – Deviseのカスタマイズ”
おなじみ「Ruby on Rails with OIAX」のチュートリアル形式の記事。
・第12回: ユーザー認証(1) – Ruby on Rails 3.0 日記 – Ruby on Rails with OIAX
・第13回: ユーザー認証(2) – Ruby on Rails 3.0 日記 – Ruby on Rails with OIAX
実際に、Deviseを使ってみたというエントリ。
・Deep valley まとめ版 – RailsでDeviseを使ってみた
・Rails3.0 で Devise と CanCan を動かす – dimrosの日記
・Rails 3.0用にrestful_authentication から deviseに移行してみる – 発声練習
・[Ruby] Rails 3, Devise 使い方のまとめ(2011年8月版) | お風呂だいすきぶろぐ。
・eitoballの練習帳: Devise: Rails向けの柔軟性のある認証ソリューション
■ Devise でハマった
・Deviseでメールアドレス変更直後にアカウントをロックさせない方法 | Geekの逆襲
手順を間違えたらハマったという記事。手順は大事。
・rails3.2でdeviseのインストール手順を間違えたら面倒だった話 | Fusic Developers’ Weblog
以上です。(随時更新予定)
Ruby on Rails にて、erb ファイルから haml ファイルに変換するなら erb2haml という Gem が便利なので、オススメです。
# Gemfile: group :development do gem 'erb2haml' end |
下記のコマンドで、erb ファイルを全て haml ファイルに変換してくれます。
$ rake haml:convert_erbs Looking for ERB files to convert to Haml... Converting: app/views/layouts/application.html.erb... Done! |
ちなみに、変換後も元の erb ファイルは残ったままなので、必要なくなったら削除しておきましょう。
以上です。
【参考】
認証(Authentication) と 認可(Authorization) の違いを分かりやすく説明している記事があったのでメモ。
・ZIGOROuのOpenID Short Clinic:認証と認可の違い – ITmedia エンタープライズ
図:認証と認可の違い(引用元:ITmedia エンタープライズ)
以上です。
Eclipseプラグインの ER 図用GUIエディタ「ER Master」が無料で使えて、オススメです。
他に、Mac で使える ER図用GUIエディタがあればぜひ教えて欲しいです。
Mac OS X Lion にて、カーネルのビット数の確認する方法と、32bit と 64bit の切替え方法を調べたのでメモ。
■ カーネルのビット数の確認する方法
$ getconf LONG_BIT |
64bit なら 64、32bit なら 32 と表示されます。
■ カーネルの32bit と 64bit の切替え方法
・64ビットカーネルをデフォルトにする(実行後再起動)
$ sudo systemsetup -setkernelbootarchitecture x86_64 |
・32ビットカーネルをデフォルトにする(実行後再起動)
$ sudo systemsetup -setkernelbootarchitecture i386 |
以上です。
【参考】
Mac にて、CPU が 32 ビットか 64 ビットかを識別する方法を調べたのでメモ。
・Intel ベースの Mac のプロセッサが 32 ビットか 64 ビットかを識別する方法
・IntelチップのMacで32bitか64bitか確認する方法 – コトハノオト
ちなみに、僕が使っている「MacBook Pro 13インチ 2.4GHz Intel Core 2 Duo(2010年4月発売モデル)」は 64bit でした。