Jest na to sposób, aby uczynić stronę erb w js.erb tak z remote => true w szynach:Jak renderować częściowe RAILS z lokalną zmienną f w new.js.erb?
$('#invoice_against_lease').html('$("<%= j render(:file => 'invoice/new.html.erb') %>")');
Mamy częściowy _customer_quote_record takiego:
<%= f.input :quote_id, :label => 'Quote#:', :collection => quotes_for_invoice(@customer), :include_blank => true %>
<%= f.hidden_field :_destroy %>
Częściowa jest renderowany w html.erb jak ten, z przechodzącej zmiennej lokalnej producentów:
<%= f.simple_fields_for :invoice_items do |builder| %>
<%= render 'customer_quote_record', :f => builder %>
<% end %>
Próbowaliśmy kod poniżej:
$('#invoice_against_lease').html('$("<%= j render(:file => 'customer_lease_record', :f => f) %>")');
a błąd jest "ActionView::Template::Error (undefined local variable or method
f”..." `
Czy istnieje sposób, aby uczynić częściowe powyżej w js.erb?
Ten sam błąd. f jest budowniczym formularzy, który żyje tylko w widoku. Moje pytanie brzmi: jak przekazać konstruktora formularza do częściowego w js.erb. – user938363
Ah, teraz widzę. Nie do końca pewne. Czy możesz skorzystać z odpowiedzi podanej tutaj, http://stackoverflow.com/questions/371147/rails-ajax-my-partial-needs-a-formbuilder-instance, i po prostu użyć 'fields_for' w części zamiast ją przekazać? – Naty722
Wypróbowałem podobne rozwiązanie (inny podobny wpis dotyczący obiektu przekazywania zamiast konstruktora formularzy). To działało częściowo. Jednak utracono powiązanie, które spowodowało niepowodzenie podczas zapisywania obiektu nadrzędnego. Mam błąd: obiekt podrzędny nie może być pusty. Nie wiem, co powoduje utratę powiązania. – user938363