翻訳用に 2 つのフィールド (タイトル、説明) といくつかのロケール (英語、スウェーデン語) のセットがあります。
ページにアクセスすると、英語の設定フィールドのみが表示されます。ただし、ユーザーは追加の翻訳を提供できる必要があります (必要な場合)。そのために、"globalize3" と "batch_translations" ( https://github.com/fidel/batch_translations ) の gem を使用します。
言語の選択は、ドロップダウン リストのように行われます。言語を選択すると、新しいフィールド セットが以前のセットのすぐ下に表示されます。
問題自体は、Ryan がスクリーンキャストで取り上げたものと似ています: http://railscasts.com/episodes/197-nested-model-form-part-2
ただし、大きな違いが 1 つあります。フォームも翻訳する必要があります。
最初は、すべて問題ないと思っていました。選択したロケールでパーシャルをレンダリングして埋め込む役割を担うコントローラーのリモート アクションにフォーム ビルダー参照を渡すのに問題はありません。
しかし、object_id (Garbage Collector destroy の it) で参照を渡す可能性がないことが判明しました。
次に、次のように、コントローラーで FormBuilder をインスタンス化できることがわかりました。
f = ActionView::Helpers::FormBuilder.new(:name, @object, view_context, {}, nil)
私がそうすると、次のように、一次フィールドのみが機能します。f.text_field
ただし、globalize3 と batch_translations は nested_attributes を使用しています。
<% f.globalize_fields_for locale do |g| %>
g.text_field :title
g.text_area :description
<% end %>
そして、何らかの理由で (view_context が正しくないためだと思います)、システムはエラーをスローします。
ActionView::Template::Error (undefined method `<<' for nil:NilClass)
この問題の良い解決策はありますか? ありがとう!