ここのところ開発版 Rails ではさほど大きな変更や機能追加が無かったので、かなり短くなっています。この記事で触れられていない小規模な変更などについては Rails commit logs の方を参照してください。ActionPack のリファクタリングやマルチスレッド化、ActiveModel などもありますが、まだまだ開発途中で、それほど具体的でないので省略します。
要望や批判がありましたら、いつもの様にコメント欄にお願いします。
script/server が Thin に対応
script/server が Thin が使用可能かチェックし、可能であれば使用する様になりました。開発環境で Thin を使用している場合でも、運用環境で Thin を使用している場合でも便利な機能でしょう。Thin を使用する場合は、environment.rb に config.gem ‘thin’ を追加する必要があります。
この機能のパッチは fluxin の人達が提供してくれました。
String#humanize が語形変化 (”Inflection”) でカスタマイズ可能に
中核拡張 (”Core Extension”) の String#humanize が、テーブル項目の様なアンダーバー付き文字列を読みやすくするのに使われる様になりました。例えば以下の様になります。
"actor_salary".humanize => "Actor salary" "anime_id".humanize => "Anime"
レガシーな項目名を設定していたり、出演者の報酬 (”Actor salary”) という項目に “act_sal_money” といった様な「非人間的」な名前を使っている場合は、“Act Sal Money” が返されてしまい、あまりうまく機能しません。
この語形変化は、単数形、複数形、例外、不可算などと同じように、語形変化法則を指定することでカスタマイズできます。
Inflector.inflections do |inflect| inflect.human /_cnt%/, '\1_count' inflect.human 'act_as_money', 'Actor salary' end
正規表現を使って “click_cnt” を “Click count” できる点は気に留めておきたいところです。
このパッチを提供してくれた ダン・マンジェス (”Dan Manges”) と パスカル・エラート (”Pascal Ehlert”) に感謝。
ハッシュを使って複数テーブルにまたがる条件を設定可能に
ネイクさん (”Pratik Naik”) が、結合 (”JOIN”) されたテーブルにハッシュでそれぞれ条件を設定できる、小規模ながら便利な ActiveRecord の機能を提供してくれました。説明より以下の例を見た方がわかりやすいでしょう。
Anime.all(
:joins => :character,
:conditions => {
:active => true,
:characters => { :gender => 'female' }
}
}
この ActiveRecord クエリーは、アクティブに設定され、キャラクターが女性 (”female”) のすべてのアニメを返します。
あとがき
今回は以上です。小規模な修正や変更でも、もっと紹介して欲しいものがあれば、是非教えてください。
きょうのはま
湿度にやられています。
Filed under: Ruby, ソフトウェア開発, 翻訳, 読み物, 開発版 Rails "edge" |



No Responses to “7月7日付け: 開発版 Rails の変更点 “先を行くこと” (”Living on the Edge”) その3 — Ruby on Rails 公式ブログより”
Leave a Reply