Home > RubyOnRails > restful-authentication プラグインを使ってログインアプリケーション作る(2)

restful-authentication プラグインを使ってログインアプリケーション作る(2)

前回作った 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

Comment Form
Remember personal info

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

Home > RubyOnRails > restful-authentication プラグインを使ってログインアプリケーション作る(2)

Calendar
« 2008 年 10月 »
M T W T F S S
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
ページ
ブログパーツ

Return to page top