ラベル rails の投稿を表示しています。 すべての投稿を表示
ラベル rails の投稿を表示しています。 すべての投稿を表示

2008年4月17日木曜日

NetBeansでのBackgrounDRbの使用手順

早速、BackgrounDRbを使用してみました。
使用手順は以下の通りです。

  1. NetBeansIDEを終了、もしくはプロジェクトを閉じます。
  2. http://svn.devjavu.com/backgroundrb/ からプラグイン(0.2.1)をダウンロードします。(最新版は、1.0.1ですが、Rails2.0対応のようです。さらに現バージョンではWindowsサーバー上では起動しないようです。)
  3. #{RAILS_ROOT}\vendor\plugins に、ダウンロードしたプラグインbackgroundrb をコピーします。
  4. NetBeansIDEを起動、もしくはプロジェクトを開きます。
  5. プロジェクトを右クリックで「Rakeタスクの実行」ー「一覧の再表示」を選択します。
  6. 「Rakeタスクの実行」メニューに「backgroundrb 」が増えていますので、「setup」を選択します。
  7. backgroundrb の設定は、#{RAILS_ROOT}\config\environments\backgroundrb.yml を変更します。
  8. 「生成」ー「Worker」でモデル名を指定して、Workerモデルを作成する。

※BackgrounDRb Version 1.0.1の設定方法は、HDEラボさんのところで分かりやすく説明してありました。

一定周期で処理を実行

Rails環境のみ(cronなどを使用しない)で周期的に処理を実行したい。

ざっと調べた感じでは、実装したい内容により次の2つを使い分ければよい感じです。

・periodically_call_remote/Ajaxヘルパー
 Ajaxを使って周期的にメソッドを実行するようです。

・BackgrounDRb/Railsプラグイン
 リクエストとは別のスレッドで処理を行なうプラグインのようです。

この2つに関しては、引き続き調査したいと思います。

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.)
 メールで使用するキャラクタセット