「2012年12月」の記事一覧

Ruby on RailsでDeviseを使う際の手順

2012年12月29日 15時47分

Ruby on RailsプロジェクトにDeviseを導入する際の手順をまとめておく。

 

導入しようと思って、意外にハマった。

今思えば、こんなのにハマらんじゃろと思うようなことでもハマってしまっていたが、初めてのことが多いとわけがわからなくなるものだ。

 

初めてDeviseを導入しようとしている人は、是非一度、今回紹介する手順通りに進め、動作すること、最低限必要な流れを確認してほしい。

そうすることで、ハマっちゃっていらない調査に時間が掛かったということも無くなると思う。
(さらに…)

Ruby on Rails + Deviseの組み合わせでMissing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true

2012年12月29日 09時12分

Ruby on Railsで認証機能を実現してくれるDevise

 

Devise README.mdにも記載があるが、次の設定が必要。

 

READMEに書いてあるのに設定を忘れた私がいけないが、設定しないとメール送信操作時に次の例外が発生する。

Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true

 

ちなみに、Ruby on Railsのドキュメントで調べても、RailsGuidesのConfiguring Rails Applicationsにもdefault_url_optionsの説明は無い。

 

APIドキュメントの説明文に一箇所だけ記載を見つけることができた。

ActionMailer::Base

 
 

もう一度同じミスをしてハマった時にググったら、このページを発見できますように。

 
 
 

2012/12/29 追記:

rails generate devise:installした時にも、config.action_mailer.default_url_options設定しろとちゃんと表示されますね。。

E:\home\aptanaws\StudyRails\sample_devise>rails g devise:install
create config/initializers/devise.rb
create config/locales/devise.en.yml
===============================================================================

Some setup you must do manually if you haven't yet:

1. Ensure you have defined default url options in your environments files. Here
is an example of default_url_options appropriate for a development environment
in config/environments/development.rb:

config.action_mailer.default_url_options = { :host => 'localhost:3000' }

In production, :host should be set to the actual host of your application.

 

見落としすぎな私。

active_supportのrequire

2012年12月26日 21時23分

また忘れちまった。

ActiveSupportのrequireは、これではダメだ。

 

ActiveSupportの機能を全て使いたいなら

 

クラス拡張のみ使いたいなら

 

特定のオブジェクトについてのみの拡張を使いたいなら

(object部分を適切に書き換える)

 

特定のオブジェクトの特定の拡張メソッドについてのみ使いたいなら

(objectとblankは適切に書き換える)

 
 

このルール、けっこうど忘れするが、ググっても個人のブログが上位に出てきて調べにくい。

 

ActiveSupport専用のサイトはどこだっけと探していると、

RailsGuides Active Support Core ExtensionsにActiveSupportについての説明があった。

 

そういえば知っていた。

 

またど忘れするから記事にしておこう。

 
 

結論

ActiveSupportのrequire方法をど忘れしたら、RailsGuildesのActive Support Core Extensionsを読むべし、ですな。

RubyのArray#mapメソッドを短く記述する

2012年12月26日 00時40分

こんなソースコードは

 

こうやって短く書くことができる。

どちらも結果は同じ。

 

ついさっきこれを知った時は魔法みたいだったが、理解することに成功した。

以下、私が理解した理屈。
(さらに…)

ActionMailerでメールが送信されないない人はここを見直そう

2012年12月25日 22時13分

Ruby on Railsで、ActionMailerでメールの送信をしてみたところ、ハマっちゃった。

同じようにハマってしまっているかもしれない人のために、アドバイスを残しておく。

(さらに…)