あと少しでリリース。
現在進行中の読書びよりの再構築プロジェクトですが、開発がほぼ完了しました。
残タスクは以下の通り。
- 最終動作テスト
- 脆弱性検査
- 移行計画作成
- ステージング環境での移行リハーサル
- 本番環境移行メンテナンス
順調にいけば、遅くとも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で困っちゃった事リスト - すがブロ
これだと動的にセッション期限を変更できそうですね。
twitter記録やめました。
で、twilogはじめました、と言おうと思ったら前にもう利用スタートしてました。
http://twilog.org/yune_kotomi/
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')が実行されます。
他には以下のようなイベントが発生します。
新サービスの開発スケジュール。
現在開発が進行中の、OjiKoenプロジェクトはこんな感じのスケジュールで進む予定にしてます。
8月第1週 | 開発者向け基盤機能の完成 |
8月末 | ユーザ向け機能の完成 |
9月第2週 | 開発者向け機能・UI調整の完了 |
10月第1週 | デザイン調整完了 |
11月末 | モバイルサポート開発完了 |
1月第2週 | クローズドベータテスト終了 |
順調に進めば来年1月〜2月あたりには新サービスをお届けできる予定。今回のプロジェクトでは初めてのモバイルサポートが入るので、開発期間は長めです。