2008年4月10日木曜日

RailsでセッションデータをファイルではなくDBに保存する

通常セッションデータは、サーバーにファイルで保存されます。
以下の設定を変更する事でDBに保存することが出来ます。

ファイル:environment.rb
ファイル内から次の行を探し、コメントを外します。
#config.action_controller.session_store = :active_record_store

次に、rake db:sessions:createを実行します。
正常にrakeが完了すると次のファイルが作成されます。

ファイル:db/migrate/009_add_sessions.rb
(セッションデータ保存テーブル)

あとは、データーベースマイグレーションで現在のバージョンにする事でDBにセッションデータが保存されるようになります。

environment.rbを更新していますので、サーバーが起動中であれば設定を有効にする為に再起動します。

2008年4月9日水曜日

Rails メール送信(1)

Railsでメールを送信するには、以下の設定が必要なようです。

ファイル:environment.rb
の最後に以下の内容を記述します。



ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.default_charset = "iso-2022-jp"
 
ActionMailer::Base.smtp_settings = {
:address => "<サーバーアドレス>",
:port => 25,
:domain => "<ドメイン名>",
:authentication => :login,
:user_name => "<ユーザー名>",
:password => "<パスワード>"
}


※備考
ActionMailer::Base.delivery_method = (:smtp or :sendmail or :test)
 :smpt smtpを使ってをメール送信する(ActionMailer::Base.smtp_settingsが必要)
 :sendmail sendmailを使ってをメール送信する
 :test test用で実際には送信しない

ActionMailer::Base.perform_deliveries = (true or false)
 true メールを送信する
 false メールを送信しない

ActionMailer::Base.raise_delivery_errors = (true or false)
 true メール送信エラー発生時に例外を発生する
 false メール送信エラー発生時に例外を発生しない

ActionMailer::Base.default_charset = ("utf-8" or "iso-2022-jp" or etc.)
 メールで使用するキャラクタセット