カテゴリー : 2012年 4月

[Ruby] ユーザー認証エンジン「Devise」で現在ログイン中のユーザーIDを取得する方法

Ruby のユーザー認証まわりの処理をしてくれる Gem 「Devise」で現在ログイン中のユーザーIDを取得する方法を調べたのでメモ。

現在ログイン中のユーザーのモデルは current_user で取得できます。

なので、ログイン中のユーザーIDは下記のように書けば取得できます。

current_user.id

以上です。

[Haml] syntax error, unexpected keyword_ensure, expecting keyword_end というエラーの解決方法

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] error: There was a problem with the editor ‘vi’. というエラーの解決方法

Git にて、git commit して Vim 上でコメント書いて、コミットしようとしたらエラーが発生しました。

Git

続きを読む

[Git] グローバルな .gitignore で全ての git リポジトリで無視するファイルを設定する方法

Git にて .DS_Store のような無視したいファイルを間違ってコミットしてしまわないように、全てのリポジトリに適用される .gitignore を作成しました。

Git

続きを読む

[Ruby on Rails] ユーザー認証エンジン「Devise」の参考記事まとめ

Ruby on Rails アプリケーションに、ユーザー認証の仕組みを導入できる「Devise」を使うときに参考になりそうな記事をまとめてみました。
 

■ 公式

まずは、公式というか、github。

・github:plataformatec/devise はてなブックマーク - plataformatec/devise
 

■ Devise の便利サイト(全て日本語)

日本語で一番詳しい Devise のドキュメント。

Railsの第4世代認証エンジンDeviseのREADMEを翻訳してみた – LazyLoadLife はてなブックマーク - Railsの第4世代認証エンジンDeviseのREADMEを翻訳してみた - LazyLoadLife
 

ASCIIcasts さんの Devise 特集。これも分かりやすい。

ASCIIcasts – “Episode 209 – Deviseの導入” はてなブックマーク - ASCIIcasts - “Episode 209 - Deviseの導入”

ASCIIcasts – “Episode 210 – Deviseのカスタマイズ” はてなブックマーク - ASCIIcasts - “Episode 210 - Deviseのカスタマイズ”
 

おなじみ「Ruby on Rails with OIAX」のチュートリアル形式の記事。

第12回: ユーザー認証(1) – Ruby on Rails 3.0 日記 – 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 はてなブックマーク - 第13回: ユーザー認証(2) - Ruby on Rails 3.0 日記 - Ruby on Rails with OIAX
 

実際に、Deviseを使ってみたというエントリ。

Deep valley まとめ版 – RailsでDeviseを使ってみた はてなブックマーク - Deep valley まとめ版 - RailsでDeviseを使ってみた

Rails3.0 で Devise と CanCan を動かす – dimrosの日記 はてなブックマーク - Rails3.0 で Devise と CanCan を動かす - dimrosの日記

Rails 3.0用にrestful_authentication から deviseに移行してみる – 発声練習 はてなブックマーク - Rails 3.0用にrestful_authentication から deviseに移行してみる - 発声練習

[Ruby] Rails 3, Devise 使い方のまとめ(2011年8月版) | お風呂だいすきぶろぐ。 はてなブックマーク - [Ruby] Rails 3, Devise 使い方のまとめ(2011年8月版) | お風呂だいすきぶろぐ。

eitoballの練習帳: Devise: Rails向けの柔軟性のある認証ソリューション はてなブックマーク - eitoballの練習帳: Devise: Rails向けの柔軟性のある認証ソリューション
 

■ Devise でハマった

Deviseでメールアドレス変更直後にアカウントをロックさせない方法 | Geekの逆襲 はてなブックマーク - Deviseでメールアドレス変更直後にアカウントをロックさせない方法 | Geekの逆襲

手順を間違えたらハマったという記事。手順は大事。

rails3.2でdeviseのインストール手順を間違えたら面倒だった話 | Fusic Developers’ Weblog はてなブックマーク - rails3.2でdeviseのインストール手順を間違えたら面倒だった話 | Fusic Developers' Weblog
 

以上です。(随時更新予定)

[Ruby on Rails] erb を haml に変換する「erb2haml」

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 ファイルは残ったままなので、必要なくなったら削除しておきましょう。

以上です。

【参考】

Railsでerbをhamlに変換する – komagata はてなブックマーク - Railsでerbをhamlに変換する - komagata

認証(Authentication)と認可(Authorization)の違い

認証(Authentication) と 認可(Authorization) の違いを分かりやすく説明している記事があったのでメモ。

ZIGOROuのOpenID Short Clinic:認証と認可の違い – ITmedia エンタープライズ はてなブックマーク - ZIGOROuのOpenID Short Clinic:認証と認可の違い - ITmedia エンタープライズ


図:認証と認可の違い(引用元:ITmedia エンタープライズ)

以上です。

[DB] 無料で使えるER図用GUIエディタ「ER Master」

Eclipseプラグインの ER 図用GUIエディタ「ER Master」が無料で使えて、オススメです。

ER Master

他に、Mac で使える ER図用GUIエディタがあればぜひ教えて欲しいです。

[Mac][Lion] カーネルのビット数の確認方法・32/64bit 切替え方法

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 OS X Lionのカーネルは64ビット:脈絡もとりとめもない独り言:So-netブログ はてなブックマーク - Mac OS X Lionのカーネルは64ビット:脈絡もとりとめもない独り言:So-netブログ

Macの旧モデルユーザーは知っておきたい「systemsetup」コマンド – builder はてなブックマーク - Macの旧モデルユーザーは知っておきたい「systemsetup」コマンド - builder

[Mac] Intel CPU が 32 bit か 64 bit かを識別する方法

Mac にて、CPU が 32 ビットか 64 ビットかを識別する方法を調べたのでメモ。

Intel ベースの Mac のプロセッサが 32 ビットか 64 ビットかを識別する方法 はてなブックマーク - Intel ベースの Mac のプロセッサが 32 ビットか 64 ビットかを識別する方法

IntelチップのMacで32bitか64bitか確認する方法 – コトハノオト はてなブックマーク - IntelチップのMacで32bitか64bitか確認する方法 - コトハノオト

ちなみに、僕が使っている「MacBook Pro 13インチ 2.4GHz Intel Core 2 Duo(2010年4月発売モデル)」は 64bit でした。