rails:3278
From: "jet.lfo" <jet.lfo@g...>
Date: Wed, 04 Nov 2009 13:02:39 +0900
Subject: [rails:3278] fields_for_nested_modelで吐き出してるid(hidden)を抑制するFormBuilderのサブクラスを作りたい
こんにちは。jet.lfoです。 #登録メールを思わずHTMLフォーマットのまま送ってしまったが(^-^; 登録されてるんだろうか。 #用語と概念がイマイチつかめてないので、説明がてんやわんやしてるところがありますが、よろしくおねがいします。 nested-attributesなフォームフィールドを構成するにあたって、 fields_for を使用すると、 new_record?==false なレコードの場合、 fields_forの記述箇所にid用のINPUT(type=hidden)タグが出力されてしまいます。 HTML上のフィールドのレイアウトをTABLEタグで構成する場合は、 TABLE-TRタグ間やTR-TDタグ間にこのINPUTが含まれると、invalidなXHTMLになってしまいます。 #https://rails.lighthouseapp.com/projects/8994/tickets/3416-fields_for-renders-invalid-html #にそれっぽいのがあるので、2.3.5でなんとかなるんだろうか? で、なんとかしようと Ruby on Rails field_for Form Helper Problems http://stackoverflow.com/questions/1236416/ruby-on-rails-fieldfor-form-helper-problems を参考に :without_hidden_primary_key が true なら id 付けない・・・としたつもり。 -----< ここから >----- class HogeBuilder<ActionView::Helpers::FormBuilder : def fields_for_nested_model(name, object, args, block) options = args.extract_options! _without_hidden_primary_key = options[:without_hidden_primary_key] || false if _without_hidden_primary_key @template.fields_for(name, object, *args, &block) else super end end private :fields_for_nested_model : end -----< ここまで >----- で、出なくはなった...が、別の問題に。 この書き方だと、入れ子になったブロックの引数(f.fields_for{|cf| ... } の cf 相当) が、HogeBuilderのインスタンスじゃなく、ActionView::Helpers::FormBuilder のインスタンスになって HogeBuilder で実装した別のメソッドが呼べなくなってしまいました。なぜ? という辺りで、なにがどうしてどうなった、か判らなくなってしまいました。 これ、FormBuilderのサブクラスを引き継げなくなる原因はなんでしょうか? 以上。たすけて。よろしくお願いします。 -- ML: rails@r... 使い方: http://QuickML.com/
-> 3278 2009-11-04 05:02 [jet.lfo@g... ] fields_for_nested_modelで吐き出してるid(hidden)を抑制するFormBuilderのサブクラスを作りたい 3279 2009-11-04 15:27 ┗[dictav@g... ] 3281 2009-11-05 02:21 ┣[jet.lfo@g... ] 3328 2009-12-04 10:34 ┗[jet.lfo@g... ]