2009年05月28日

Railsのdevelopment環境でYAML.loadを使った場合にloadに失敗する事がある

今日はプログラミング技術の話題。
(興味が無い人には意味のわからない内容となっています。)


『すうじあむ』のある特定の非常に重たい検索処理で、
頻繁な検索実行を抑える為に検索結果をファイルとして保存し
キャッシュしておくような処理がある。

ファイルの保存にはRubyのYAMLモジュールを使って、
ActiveRecordオブジェクトリスト(検索結果リスト)を
yaml形式に変換して保存している。

コードに直すとこう。

list = ActiveRecord.find(:all, 〜検索処理〜)
path = "保存するファイル名"
File.open(path,'w') {|f| f.puts list.to_yaml }

これでActiveRecordオブジェクトの情報も保持して保存してくれるので、
復元が非常に楽チンだ。
ところがこのファイルを読み込んでリストに戻す時に注意が必要。
Railsをdevelopment環境で実行時にのみ元のオブジェクトに戻らず、
YAMLオブジェクトのリストとなってしまう。

どうやらdevelopment環境では毎回クラスをロードしているので、
YAML.loadを実行する時に対象のActiveRecordクラスが見えていないよう。
loadを行う前にそのクラスをロードする処理を入れてやれば、
問題なく復元されるようになった。

loadはYAML.loadの手前にクラスをこんな感じに書いてやるだけで良い。

Examination # ExaminationというActiveRecordクラスに復元したい
path = "保存するファイル名"
list = YAML.load(File.read path)

test,production環境では起動時にだけクラスをロードするので、
サーバ起動中に一回でもロード済みなら問題ないようだ。



※『すうじあむ』はRuby On Railsを利用しています。

※Railsのバージョンは2.0.2でRubyのバージョンは1.8.6を使用。

【関連する記事】
posted by すうじあむ開発者 at 20:48| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年05月20日

更新情報

本日、いくつかの不具合修正、機能追加を含むリリースを行いましたので報告いたします。

皆で作る歴史年表「マスヒス」をリリース
⇒数学界に起こった様々な出来事や関係する人々の人物史を集めて
 みんなで一つの年表を作る事ができます。
 歴史を時系列に並べて見る事で出来事の相関関係がわかりやすくなり、
 より数学を楽しんでもらえると思います。
 現在は試験公開ですが、ユーザーの皆様の声を頂き、
 より良い物にしていきたいので、是非感想などを聞かせてください。


平成19年度数学コンテストのセレクション公開


今後とも「すうじあむ」を宜しくお願いします。
posted by すうじあむ開発者 at 14:07| Comment(0) | TrackBack(0) | 機能追加・修正 | このブログの読者になる | 更新情報をチェックする

2009年04月07日

更新履歴

本日、機能追加を含むリリースを行いましたので報告致します。 変更点は以下の通りです。
  • 投稿の削除機能を実装
⇒間違えて投稿した場合などに投稿の取消を行っていただけます。 但し、公開済みの投稿の場合は同時に他のユーザも見ることが 出来なくなりますので慎重に行ってください。 ※他のユーザによってコメント・フォローが付いている、 セレクションに使われている、ブックマークをされている等の可能性があります。
  • 入試過去問トップにピックアップ解答作成者を表示
⇒過去問を提供頂いている先生方のプロフィールをランダムに表示します。 気になる先生がいたら早速チェック!
  • 投稿時のLaTeXにemathパッケージの導入(上級者向け)
⇒Flashモードで投稿時、プリアンブル付きで投稿し\usepackage{emath}と記述すればemathパッケージが使えます。 今後とも「すうじあむ」を宜しくお願いします。
posted by すうじあむ開発者 at 15:49| Comment(0) | TrackBack(0) | 機能追加・修正 | このブログの読者になる | 更新情報をチェックする

2009年03月18日

更新情報

すうじあむ開発者からのお知らせです。

本日16:00頃、いくつかの機能追加とバグ修正のリリースを行いました。


主な変更点は以下の通りです。

○投稿のカテゴリを6個から8個へ変更しました
 ⇒既存のカテゴリもカテゴリ名を見直し、また新たに
  『書籍・メディア』カテゴリと『TeX・コンピューター』カテゴリを追加しました。
  各カテゴリの概要は皆の投稿トップのカテゴリ新着ヘッダにある
  [?]アイコンを押してみてください。


○投稿時にカテゴリ選択画面を追加
 ⇒マイページの投稿の管理より新規投稿を行った場合、
  先にカテゴリを選択してから投稿するようにしました。
  投稿の分類を促す事で閲覧者にとって、
  より整理された情報の提供が行えるようになります。


○投稿者以外のユーザによる投稿カテゴリの変更機能追加
 ⇒カテゴリが未設定であったり、カテゴリの選択に誤りがある場合などに
  他のユーザがより的確だと判断されるカテゴリへと修正を行ってくれます。
  
  カテゴリの変更は皆の投稿の閲覧画面でタイトルの直ぐ下にある
  『変更』ボタンを押す事で行えます。但し、変更者の名前が記録されるので、
  慎重に行ってください。

○全ページにフリーワード検索を追加(Googleを利用)
 ⇒検索に実績のあるgoogle検索を利用する事でフリーワードでの
  キメ細かな検索が行えるようになりました。
  一部ログインを要するページ(入試解答など)は検索対象外となります。

○コメント投稿時に数式のプレビューを行えるようにしました

○TeXの相互参照に対応
 ⇒相互参照を必要とするようなTeX(例えばsectionを用いた目次出力など)も
  正しくコンパイルする事ができるようになりました。

○他、デザイン等の微調整


今後とも「すうじあむ」を宜しくお願い致します。
posted by すうじあむ開発者 at 17:39| Comment(0) | TrackBack(0) | 機能追加・修正 | このブログの読者になる | 更新情報をチェックする

2009年02月26日

覆面数学講師によるセンター試験解説動画公開

『すうじあむ』に謎の覆面数学講師が登場しました!

2009年センター試験の解法を解説してくれています。

今年受験した人、来年受験する人、単に覆面が気になる人、などなど皆さんぜひ以下のリンクより講義をご覧ください。

覆面数学講師現る!

(講義の閲覧には『すうじあむ』への無料会員登録が必要です)

さらに講義の後にはおまけとして動画撮影の舞台裏を少しだけお見せします。
覆面講師の個性が垣間見れてこちらも楽しいですよ。
posted by すうじあむ開発者 at 10:44| Comment(1) | TrackBack(0) | イベント | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。