1

form_for @userモデル内でビルダーによって生成されたフォームにオプションとフィールドを追加するにはどうすればよいですか? (つまり、HTMLに触れずに)

私がそれをしたい理由は、プラグ可能なモジュールをモデルに追加していてdata、(a) Javascript のフックを提供するために HTML に属性を追加し、(b) 追加のフィールドを自動的に追加したいからです。フォームで。

たとえば、そのようなモジュールを私のモデルに追加すると:

module Dataable
  def form_options
    { 'data-foo' => true }
  end

  def form_builder_extra_fields
    hidden_field_tag :the_data
  end
end

User.send :include, Dataable

出力するようform_forにします:

<form {...} data-foo>
  <input type="hidden" name="user[the_data]" {...} />
  {...}
</form>

ビューで。

もちろん、私が作ったばかりの方法です。したがって、問題は 2 つあります。(1) フォーム オプションと (2) フォーム タグをモデルに動的に追加する方法。

私はform_for今、詮索している最中ですが、誰か知っていたのだろうか。

4

2 に答える 2