私は3つの関連モデルでネストされたフォームを持っています。カスタムフォームビルダPanelFormBuilder
ですべてのフィールドを作成したい。ただし、form_for
はフォームビルダーで処理されており、fields_for
は処理されません。デフォルトの処理で処理されます。なぜ私は私の人生のために働くことはできません。fields_forメソッドでカスタムフォームビルダーが呼び出されていません
これは動作します:
<%= panel_form_for @firm do |f| %>
これはしていません:
ここ<%= panel_fields_for @firm.company do |c| %>
は、カスタムメソッドです:ここ
module ApplicationHelper
def panel_form_for(object, options = {}, &block)
options[:builder] = PanelFormBuilder
form_for(object, options, &block)
end
def panel_fields_for(object, options = {}, &block)
options[:builder] = PanelFormBuilder
fields_for(object, options, &block)
end
end
は、カスタムフォームビルダは
class PanelFormBuilder < ActionView::Helpers::FormBuilder
delegate :content_tag, :tag, to: :@template
%w[text_field text_area password_field].each do |method_name|
define_method(method_name) do |name, *args|
options = args.extract_options!
options.merge!(:class => "required")
super(name, *(args + [options]))
end
end
end
です
誰かが私が間違っていることを教えてもらえますか?
ありがとうございました