あと少しでリリース。

現在進行中の読書びよりの再構築プロジェクトですが、開発がほぼ完了しました。
残タスクは以下の通り。

  • 最終動作テスト
  • 脆弱性検査
  • 移行計画作成
  • ステージング環境での移行リハーサル
  • 本番環境移行メンテナンス

順調にいけば、遅くとも2月の半ばまでにはリリース出来る予定です。今回のプロジェクトは今後の保守運用を容易にするための再構築プロジェクトなのでユーザ側への変化は少ないですが、UIのブラッシュアップや作品詳細ページでの関連作品表示など、いくつかの新機能が投入されます。

Rails3系でセッション有効期限の設定。

3系の資料が見あたらなかったので。


config/initializers/session_store.rb

Kasuganomichi::Application.config.session_store :cookie_store, 
  :key => '_kasuganomichi_session',
  :expire_after => 2.weeks

これで、2週間有効のセッションになります。
2系だと、

ActionController::Base.session_options[:expire_after] = 2.weeks

と渡していた値をRails.application.config.session_storeに渡してやればOK。

参考

The session_store was configured in ActionController::Base.session, and that is now moved to Rails.application.config.session_store. Defaults are set up in config/initializers/session_store.rb.

Ruby on Rails 3.0 Release Notes — Ruby on Rails Guides

追記

requestに設定してもいいそうです。
Rails3で困っちゃった事リスト - すがブロ
これだと動的にセッション期限を変更できそうですね。

Kasuganomichiプロジェクトで得ようとするもの。

現在アクティブに進行中のプロジェクト、Kasuganomichiで行いたいことはこれ。

  • Rails 3による開発方法の習得
  • Twitter API利用方法の習得
  • 新共通デザインのWebアプリケーションへの適用実験
  • UIの品質向上

サービス提供、と言う目的の他に以上のような練習、実験を組み合わせて開発中です。

Ajaxの周りで。

Rails3ではPrototypeHelperが廃止されて、form_for_remoteとかが消えた。その代わり、form_forに

:remote => true

を渡すことでAjaxなフォームが作れるようになる。
ただし、今までnew Ajax.Requestする前やリクエストの完了後などにJSで処理をさせる場合に使われていた、

:before => "function(){alert('before')}"

のような引数を取るようになったわけじゃないので、こうする。
まず、form_forを普通に書く

<%= form_for(@image_set, :remote => true) do |f| %>
  〜なんちゃら〜
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

で、このフォームのIDが'new_image_set'になるとして、以下のようなJavaScriptを追加。

$('new_image_set').observe('ajax:before', function(){alert('before')});

prototype.jsを使っている場合。余談ですが、これ書く前にあちこち調べたところ、見つかるサンプルがことごとくjQueryの場合でびっくりしました。jQuery大人気。

これで、Ajax.Requestが実行される前にalert('before')が実行されます。
他には以下のようなイベントが発生します。

遊び場の風景。

ふと描いてみたくなったので、現在のyumenosora.netサービス環境のシステム構成図(のようなもの)を描いてみました。

大枠は伝統的な構成で、さほど妙な構成ではないです。会員DBと基幹DBが分かれているのは歴史的経緯。ウチのサービス群の規模では全て基幹DBに乗せても問題はないです。

新サービスの開発スケジュール。

現在開発が進行中の、OjiKoenプロジェクトはこんな感じのスケジュールで進む予定にしてます。

8月第1週 開発者向け基盤機能の完成
8月末 ユーザ向け機能の完成
9月第2週 開発者向け機能・UI調整の完了
10月第1週 デザイン調整完了
11月末 モバイルサポート開発完了
1月第2週 クローズドベータテスト終了

順調に進めば来年1月〜2月あたりには新サービスをお届けできる予定。今回のプロジェクトでは初めてのモバイルサポートが入るので、開発期間は長めです。