2011年2月2日水曜日

オープンソース CRM(Fat Free CRM) データを見てみる

ブログを始めて1ヶ月が経とうとしていますが、Rubyの勉強もしながら、ブログも・・・となると時間がもったいないような気もしていました。
ところが、意外とブログを書いて、記事を参考にしている方が少しでもいるならと、逆に頑張ってしまいそうです。
睡眠不足にはならないよう、少しずつですが続けていきたいと思います。

さて、今回は Fat Free CRM のテーブルを覗いてみます。

/db/migrate フォルダにある最初のマイグレーションファイルは
001_create_session.rb
です。

これは、sessionsテーブルを作成するマイグレーションファイルです。
通常のWebアプリケーションならセッションの情報をブラウザのクッキーにもたせます。Railsでもセッション情報は通常クッキーに保持させるようですが、Railsにはセッション情報をデータベースに持たせる仕組みが予め備わっているそうです。

Rakeタスクに
db:sessions:create
があります。
NetBeansで実行しようとすると次のような説明があります。
Creates a sessions migration for use with ActiveRecord::SessionStore
このRakeタスクを実行することによって、ActiveRecord::SessionStroreと連携してセッション情報をDBに保持することができるようになるようです。

上記のRakeタスクを実行したあとには、db:migrate が必要になりますが、Fat Free CRM では一気に作成してもらっていますので、自分でアプリケーションを作成する際に、この仕組を使うならこの2つのRakeタスクが必要になります。

また、
/config/initializers/session_store.rb
の15行目に
ActionController::Base.session_store = :active_record_store
とあり、これがデータベースでセッション管理するよ!という指定のようです。

実際にアプリケーションにログインして、データを見てみると2件レコードが作成されていました。
でもまだ、クッキーを見ると、sessionsテーブルのsession_idに設定されているデータを同じクッキーがブラウザで確認できました。

書籍「RailsによるアジャイルWebアプリケーション開発 第3版」によると、どうもapplication.rbも修正が必要とのこと。

Fat Free CRM では、
/app/controllers/application_controller.rb
の30行目にある
# protect_from_forgery # :secret => '165eb65bfdacf95923dad9aea10cc64a'
のコメントを外す必要あるようです。(書籍とファイル名が異なるのはRailsのバージョンの違いのせい?)

このあたりの設定が問題なければ、セッションをデータベースで管理できるようになるようですね。
あとで、コメントを外して試してみます。 今日はここまで。

0 件のコメント:

コメントを投稿