カテゴリー : Ruby on Rails

[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

[Ruby on Rails] アプリ作成時に Test::Unit のファイルを作成しない方法

Ruby on Rails 3.2 にて、アプリケーション作成時に Test::Unit のファイルを作成しない場合は -T オプションを付ければOKです。

$ rails --help
Usage:
  rails new APP_PATH [options]
 
Options:
  -T, [--skip-test-unit]         # Skip Test::Unit files

使いどころは、RSpec を使う場合などの Test::Unit が要らないときぐらいですかね。

■ (例)アプリ名 codenote を Test::Unit 無しで、作成するコマンド

$ rails new codenote -T

以上です。

【参考】

Rails3でTDD環境を整えたメモ | ひげろぐ はてなブックマーク - Rails3でTDD環境を整えたメモ | ひげろぐ

[Ruby] Shinjuku.rb #3 忘備録

Ruby の勉強会、Shinjuku.rb #3 に行ってきたので、メモ。

Shinjuku.rb #3 on Zusaar はてなブックマーク - Shinjuku.rb #3 on Zusaar

(3)Shinjuku.rb – Google グループ はてなブックマーク - (3)Shinjuku.rb - Google グループ
 

■ 近藤さん @udzura https://twitter.com/#!/udzura 「Padrino framework が簡単というのは嘘」

Padrino という、Sinatraベースのフレームワークのお話。

Padrino で素敵なウェブ開発を – Padrino Ruby Web Framework はてなブックマーク - Padrino で素敵なウェブ開発を - Padrino Ruby Web Framework
 

Spork 0.7.3 はてなブックマーク - Spork 0.7.3

■ 岡部さん @foggs2 https://twitter.com/#!/foggs2

VisualuRuby計画(仮称) はてなブックマーク - VisualuRuby計画(仮称)

YAMLの発音は?

YAML はヤムルって発音するのか – foldrrの日記 はてなブックマーク - YAML はヤムルって発音するのか - foldrrの日記

YAMLの読みはヤメル? : mwSoft blog はてなブックマーク - YAMLの読みはヤメル? : mwSoft blog
 

■ 珍田さん @ckazu https://twitter.com/#!/ckazu

・「コードレビューを支える技術」という本が欲しい!

・遺伝的アルゴリズムを使って、FizzBuzz問題を解くというお話

■ @joker1007 https://twitter.com/#!/joker1007 「ジョジョで分かる頭じゃなく精神で理解するアジャイル」

■ 河野さん @jugyo https://twitter.com/#!/jugyo 「mocktra 等の紹介」

webmock + sinatra な mocktra の紹介。

jugyo/mocktra はてなブックマーク - jugyo/mocktra

webmock

bblimke/webmock はてなブックマーク - bblimke/webmock

POST可能なRubyのNet::HTTP偽装テストライブラリWebMock+ – きたももんががきたん。 はてなブックマーク - POST可能なRubyのNet::HTTP偽装テストライブラリWebMock+ - きたももんががきたん。

Rails3 レシピブック の読書会

■「第1 章 Rails の基本」の「004 DB 接続を設定する」

database.yml の中にERBを書ける。

Knockin’on TechLog » Blog Archive » Railsのdatabase.ymlはERBを通される はてなブックマーク - Knockin'on TechLog » Blog Archive » Railsのdatabase.ymlはERBを通される

database.ymlにERBが使えます&alias_method_chain はてなブックマーク - database.ymlにERBが使えます&alias_method_chain

パスワードをdatabase.ymlの外に追い出す方法 – こせきの技術日記 はてなブックマーク - パスワードをdatabase.ymlの外に追い出す方法 - こせきの技術日記

YAML の アンカーとエイリアス について。

Rubyist Magazine – プログラマーのための YAML 入門 (初級編) はてなブックマーク - Rubyist Magazine - プログラマーのための YAML 入門 (初級編)

■「005 モデル・ビュー・コントローラを自動生成する」

・rails g scaffold や rails g model でモデル作成するとき、コマンド上ではテーブル名やカラム名ぐらいを最低限定義して、あとで migration ファイルを修正する

・初回のDB作成は rake db:setup でサクっとやっちゃう

・scaffold を使うとき/使わないときの違いは?

→CRUDならscaffoldを使う。その際、Viewは全て捨てる。

以上です。

[Ruby on Rails] Facebook外でのアクセスをFacebookページ内のアプリヘリダイレクトさせる方法

Ruby on Rails にて、Facebookアプリ外でのアクセスをFacebookページ内のアプリヘリダイレクトさせる処理を書いてみました。

before_filter :check_access_from_facebook
 
def check_access_from_facebook
  redirect_to MyRailsApp::Application.config.facebook_app_url if params[:signed_request].nil?
end

Facebookアプリは、Facebookのサイト内でアクセスがあった場合、必ずリクエストパラメータに signed_request が存在します。

なので、これがない場合はFacebook外でのアクセスというように判断して、Facebookページ内のアプリへリダイレクトさせるようにしました。

signed_request から取得したパラメータに依存した実装になっていると、Facebook外で単独のWebアプリとして正常に動作しないので、今回はリダイレクトさせることで解決しました。

以上です。

【参考】

Railsのcontrollerやviewの中で現在処理中のURLを知る方法: request.url – memo.yomukaku.net はてなブックマーク - Railsのcontrollerやviewの中で現在処理中のURLを知る方法: request.url - memo.yomukaku.net

[Ruby on Rails 3.1] lib ディレクトリ以下に自作ライブラリを置いて autoload を有効にする設定方法

Ruby on Rails 3.1 にて、lib ディレクトリ以下に自作ライブラリを置いて、オートロードする設定方法を調べたのでメモ。

Rails3 で autoload はデフォルトで無効になっているので、config/application.rb でオートロードを有効にしてやる必要があります。

■ config/application.rb:

# Custom directories with classes and modules you want to be autoloadable.
# config.autoload_paths += %W(#{config.root}/extras)
config.autoload_paths += %W(#{config.root}/lib)  # 追加
config.autoload_paths += Dir["#{config.root}/lib/**/"] # 追加

僕はこの設定で autoload が有効になりましたが、これでもダメな場合は、ここを参考にしてみるといいかも。

自作ライブラリをrequireするためにやったこと – 喉鳴らす未来に達し はてなブックマーク - 自作ライブラリをrequireするためにやったこと - 喉鳴らす未来に達し

以上です。

【参考】

Rails3でautoloadはデフォルトで無効になっている – INOHILOG はてなブックマーク - Rails3でautoloadはデフォルトで無効になっている - INOHILOG

Rails 3 Quicktip: Autoload lib directory including all subdirectories, avoid lazy loading はてなブックマーク - Rails 3 Quicktip: Autoload lib directory including all subdirectories, avoid lazy loading

Rails 3 autoload – Stack Overflow はてなブックマーク - Rails 3 autoload - Stack Overflow

Ruby/Ruby on Rails/libディレクトリとオートロードと自作ライブラリ – TOBY SOFT wiki はてなブックマーク - Ruby/Ruby on Rails/libディレクトリとオートロードと自作ライブラリ - TOBY SOFT wiki

[Ruby] RVM環境での sudo は rvmsudo を使う

RVM 上に構築した Ruby on Rails で WEBrick サーバを 443 Port 指定で起動するために sudo で実行したところエラーが発生して、解決した話をご紹介します。

続きを読む

[Ruby on Rails] フォームの submit ボタンを押した後に、確認用ダイアログを表示させる方法

Ruby on Rails 3.1 にて、form の submit ボタンを押した後に、確認用ダイアログを表示させる処理をご紹介します。

submit_tag に :confirm というパラメータでダイアログに表示させるメッセージを渡すだけでOKです。

submit_tag "Save", :confirm => "Are you sure?"
# => <input name='commit' type='submit' value='Save' data-confirm="Are you sure?" />

これで、submitボタンを押すと下記のようなダイアログが表示されます。

以上です。

参考情報

[Ruby on Rails] ERB 内で URLエンコード(url_encode)

Ruby on Rails の ERB 内にて、URL エンコードする方法をご紹介します。

URL エンコード

ERB で URL エンコードするには ERB::Util.url_encode メソッドを利用します。

<%= "http://search.example.com/?q=" + url_encode(" 日本語") %>
#=> http://search.example.com/?q=%E6%97%A5%E6%9C%AC%E8%AA%9E

url_encodeメソッドの短縮形として、uメソッドも用意されています。

<%= "http://search.example.com/?q=" + u(" 日本語") %>
#=> http://search.example.com/?q=%E6%97%A5%E6%9C%AC%E8%AA%9E

以上です。

【参考】

Module: ERB::Util はてなブックマーク - Module: ERB::Util

Ruby on RailsでURLエンコード・デコードする はてなブックマーク - Ruby on RailsでURLエンコード・デコードする

RailsでURIエンコードする方法 – OneRingToFind はてなブックマーク - RailsでURIエンコードする方法 - OneRingToFind

[Rails] AbstractController::DoubleRenderError

Ruby on Rails 3.1 にて、AbstractController::DoubleRenderError というエラーが発生しました。

■ エラー内容

Render and/or redirect were called multiple times in this action. Please note that you may only call render OR redirect, and at most once per action. Also note that neither redirect nor render terminate execution of the action, so if you want to exit an action after redirecting, you need to do something like “redirect_to(…) and return”.

下記のように、複数 render 処理が実行させるとエラーになります。

render :index
render :show # ここまで処理されて render 重複エラー

render処理の後に、そこで動作を終了させたい場合は return を書かなければいけません。

render :index and return # ここで処理が終了
render :show # ここは処理されない

以上です。

【参考】

ruby on rails – AbstractController::DoubleRenderError that shouldn’t be – Stack Overflow はてなブックマーク - ruby on rails - AbstractController::DoubleRenderError that shouldn't be - Stack Overflow