« 早川さん | トップページ | カタマりたいの »

:id.:format とかページネーションとか

 数年前 Ruby でやってみようとはじめていた、とあるプログラムを「 Rails でやってみたらいけそうな気がする」というだけで始めたところ、意外にもうまくいった。途中なんどか処理のミスで修正を繰り返しはしたものの、概ね処理は問題ないしということで、全体的な修正をこのところしていたのだけれど、いよいよ終わったかなというところ。

 そもそもは膨大なデータの扱いを、以前はテキストファイルで持っていたのだけれど、それがデータベース管理できるので何かと便利になった。

 多数の数字の範囲を比較するという処理を繰り返すのだが、Range などというありがたいものが Ruby には備わっていると知ってなおのこと「これはいける」などと思ってしまった。もちろん仮になくても作ればよいのだろうけれど、あらかじめ用意されているということの信頼と便利はまた別物。これによって比較による条件分岐もすっきりしたし、その応用で分岐後の処理にしても随分と楽になったような気がする。

 それはともかくとして、今回 Rails をアップデートしてから始めたら、なんだか url が妙なことになるので気になっていた。何かを間違えているのか、仕様が変わったのか、 1.1.6 の時には起きなかったと思うのだが、1.2.x になったらのような気がする。url の末尾に /:id.:format という文字列がついてしまう。observe_field とか使っているせいなのか? とも思ったが、必ずしもそうでもないようで、仕方なく :id => '' として対処していたりする。なんだかなあ。(:id 指定が必須になったのか? とも思ったけれどそうでもないような感じだし)

 大体できたところで、縦書き表示に悩む。以前どこかで見たような気がしたので HTML の本を見直すと、あるにはあった。ただし IE 5.5 以上限定のスタイルシートで。当然 Firefox ではエラーだといわれてしまう。とはいえ、漢数字で縦書きにしたい例があるため、たとえ IE 5.5 以上限定でも対応できるなら使ってしまうか、ということで View を書いてみた。

 テーブルタグが横長になるので右から順に並ぶように array.reverse_each を使ってみる。しかしフィールド毎に each しなくてはならないので妙に煩雑なものになってしまう。それでも一応できることはできた。とりあえずの見た目は悪くない。

 そして印刷。左端しかプレビューされない(笑)。通常の縦長であれば、ページ送りするだけで印刷可能だが、横長の場合にはどうやら用紙サイズを巨大にしないと普通には印刷できないらしい(なにか手段があるのだろうか?)

 ということでページネーションだなと、普通に paginate を使ったらエラーになってまったく表示できない。いろいろ考えるとフィールドの数だけイテレートしているのでおかしくなっているのでは? という想像だけはできた(あっているかどうかはわからないが)。となれば自前でやるしかないのか、ということで、なんとかページング処理を書いてみたところ。

 将来的に縦書きスタイルシートが標準に採用されるとは考え難いので、まあ、こんなものかなと。

 ということで今回は比較的短期間で出来上がったようだ。とはいえ、実際の運用を想定すると Rails 環境は望めないのでさてどうしたものか、というあらたな悩みも・・・。

|
|

« 早川さん | トップページ | カタマりたいの »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/28835/14863383

この記事へのトラックバック一覧です: :id.:format とかページネーションとか:

« 早川さん | トップページ | カタマりたいの »