以前、railsでちょっとした日記みたいな物を作った事があるがこの時に'active_record'や'active_support'が非常に便利だと分かった。
なのでrails以外でちょっとしたWebアプリを作るときなんかもこれが使えると便利だなあ・・と思っていたんだが。
なかなか思うようにはいかなかった。具体的にはrbxやrhtmlのファイルの中で

require "rubygems"
require "active_record"

こうすると"Internal Server Error"になってしまうのだ。
その後あーしたりこーしたりいろいろとやってみたのだが、結局うまくいかず自分の中では出来ないものとなっていたんだが、Webを調べていくうちに解決方法が分かった。

apacheの設定ファイルをちょこっといじれば済む話だった。 rubyの設定はhttpd.confとは別にmod_ruby.confとして

LoadModule ruby_module modules/mod_ruby.so
<IfModule mod_ruby.c>
  RubyRequire apache/ruby-run
  RubyRequire apache/eruby-run

  <Files *.rbx>
    SetHandler ruby-object
    RubyHandler Apache::RubyRun.instance
    Options +ExecCGI
  </Files>
  <Files *.rhtml>
    SetHandler ruby-object
    RubyHandler Apache::ERubyRun.instance
  </Files>

  RubyRequire auto-reload
</IfModule>

と、こんな内容になっているが
ここの

RubyRequire auto-reload

の部分をコメントアウトすればいいだけだった。
その後apacheを再起動。

これで

n = Time.new
puts n.months_ago(1).at_beginning_of_month

こんなコードが動くようになった。
カレンダーを作る時なんかはすごく便利なんだよな'active_support'。

ただ設定ファイルをコメントアウトした事でどんな副作用が起きるのかはまた勉強しなきゃ駄目だが。

カテゴリ:

トラックバック(0)

トラックバックURL: http://blog.beanz-net.jp/beanz_mtos/mt-tb.cgi/34

コメントする