オーバーライドする最良の方法は何form_forですか?
たとえばform_for(@post)、
<form>id 属性を自動的に に設定したいのですが@post.object_id、
次のフィールドを追加します。hidden_field_tag :form_id, @post.object_id
を使用してこれを行うことはできますalias_method_chainか?
オーバーライドする最良の方法は何form_forですか?
たとえばform_for(@post)、
<form>id 属性を自動的に に設定したいのですが@post.object_id、
次のフィールドを追加します。hidden_field_tag :form_id, @post.object_id
を使用してこれを行うことはできますalias_method_chainか?
技術的には、を使用して目標を達成できる可能性alias_method_chainがありますが、フォームを解析し、コンテンツを挿入/変更する必要があります。これは、非常に醜く、非常に高速になる可能性があります。
代わりに、独自のカスタムバージョンでオーバーライドすることをお勧めします(元のソースは、 「show source」をクリックして、 http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_forform_forで確認できます。 「下部にあります)。
これを実現する1つの方法は、最近書いた投稿に記載されています:http: //davidsulc.com/blog/2011/05/01/self-marking-required-fields-in-rails-3/
違いは次のとおりです。メソッドをオーバーライドする代わりに、labelメソッドを書き直しますform_for。
PS:好奇心から、なぜあなたは?を公開する必要があるのobject_idですか?
Railsヘルパーでは、次のようなことが簡単にできます:
def form_for(record, options = {}, &block)
options[:id] = record.class.to_s + '-' + record.id
super
end