使ってみる。ちょっと重いかな。 未翻訳のはディレクトリ階層ごとに表示、でいいかも。 全部見えてると、お腹一杯になります :)。
<%= text_field "object", "method_name" %>
って書くだけで、@object.method_name の結果を value に設定してくれるんだけど、 これって AR のインスタンスじゃなくても構わないのかー。 さらに、options[:object] で指定すれば、 インスタンス変数じゃなくても OK。options[:index] を指定すれば、[] 付きの name を設定して、params からハッシュを受け取れるようになるんすね。 こりゃ便利だ。
serialize したデータをどうやってレンダリングしようか考えてたんだけど、
module HashAccessor def method_missing(m, *a) (a.empty? && key?(m)) ? fetch(m) : super end end
みたいなのを HashWithIndifferentAccess のオブジェクトに extend すれば、 キーから値をメソッド呼び出しで取ってこれるしね。
object = HashWithIndifferentAccess.new("key" => "value") object.extend(HashAccessor) puts helper.text_field("hash", "key", :object => object, :index => 1) #=> <input id="hash_1_key" name="hash[1][key]" size="30" type="text" value="value" />
Web translation statusですが、かっこいいのはフレームワークとDBの持ち方の工夫が必要になるので、とりあえずページ概念だけアドホックに実装してみました。バグ持ちなのはわかってますが、危なくはないようにしているので、とりあえずこんな感じで。