Railscast 197 (ここではASCIIcast )のネストされたモデル フォーム テクニックを使用しています。しかし、セットアップで問題が発生しています。ネストされたモデルのパーシャルの 1 つにカスタム フォーム ビルダーを使用する必要があります。link_to_add_fields_helper を次のように変更することで、機能するようになりました...
def link_to_add_fields(name, f, association)
new_object = f.object.class.reflect_on_association(association).klass.new
fields = f.fields_for(association, new_object, :child_index => "new_#{association}", :builder => AnswerFormBuilder) do |builder|
#was...
#fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder|
render(association.to_s.singularize + "_fields", :f => builder)
end
link_to_function(name, h("add_fields(this, \"#{association}\", \"#{escape_javascript(fields)}\")"))
end
両方のネストされたモデルを AnswerFormBuilder に設定することで、私の問題は少し解決しましたが、質問と回答の両方がそれらを必要としないため、あまりエレガントではありません。さらに、アプリケーション全体のフォームビルダーをやりたいところまで来ました。2 番目の質問は、どうすればカスタム フォーム ビルダーを「ネスト」できますか? つまり、AnswerFormBuilder に、ApplicationFormBuilder が持つすべてのメソッドと、Answers 用のその他の特別なメソッドを実装させます。どうもありがとう、私はいたるところを見たり、他のブログで質問したりしましたが、まだ答えはありません.