- 2008-10-07 (火) 11:10
- RubyOnRails

前回作った todo アプリケーションにメールアドレス変更機能と、エラーメッセージ・メールの日本語化を追加します。
メールアドレス変更機能
change_email プラグインをインストールします。
ruby script/plugin install git://github.com/kusakari/change_email.git
依存しているプラグインをインストールします。(valid-attributes)
ruby script/plugin install git://github.com/kusakari/valid_attributes.git
メールアドレス保存用のコードを自動生成します。
ruby script/generate change_email email user
migrate します。
rake db:migrate
これで、以下の URL からメールアドレスを変更することができます。(ログイン後のみ)
http://localhost:3000/change_email
エラーメッセージの日本語化
RailsJa プラグインをインストールします。
ruby script/plugin install git://github.com/kusakari/rails-ja.git
次に、app/models/todo.rb を変更します。
以下のようにして、@@humanized_attribute_names にアトリビュートごとの名称を設定します。
human_model_name は日本語モデル名を返すようにします。
class Todo < ActiveRecord::Base
validates_presence_of :name
validates_length_of :name, :within => 1..100
class << self
@@humanized_attribute_names = {
"name" => "タスク名",
}
def human_model_name
"Todo"
end
end
end
メールの日本語対応
ActionMailerJa プラグインはインストールするだけで日本語対応できる ActionMailer 拡張です。
ruby script/plugin install git://github.com/kusakari/actionmailer-ja.git
ActionMailerJa はメールヘッダの Subject, From, Cc, Recipients の日本語化にも対応しているため、
例えば、app/models/user_mailer.rb の場合、以下のように変更します。
class UserMailer < ActionMailer::Base
def signup_notification(user)
setup_email(user)
@subject += '新しいアカウントを有効にして下さい'
@body[:url] = "#{$SERVICE_URL}/activate/#{user.activation_code}"
end
def activation(user)
setup_email(user)
@subject += 'アカウントが有効になりました'
@body[:url] = "#{$SERVICE_URL}"
end
protected
def setup_email(user)
@recipients = "#{user.email}"
@from = "TODOアプリケーション <#{$ADMIN_EMAIL}>"
@subject = "[YOURSITE] "
@sent_on = Time.now
@body[:user] = user
end
end
以上でメールアドレスの変更機能と、エラーメッセージ・メールの日本語対応ができました。
僕が現時点で Ruby on Rails を選択するのは、他のフレームワークでは、
ここまでの機能を同じくらい高速で汎用的に開発することはできないと思っているからです。
これはもちろん Ruby という言語によるものが大きいと思います。
ということで Ruby on Rails のメリットを最大限活かせるように、プラグインやジェネレータを積極的に作っていきたいと思います。
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://blog.imishin.com/2008/10/07/rails-with-restful-authentication-2/trackback/
- Listed below are links to weblogs that reference
- restful-authentication プラグインを使ってログインアプリケーション作る(2) from imishin.com

