有渲染ERB頁面js.erb這樣一個辦法:在軌遠程=>真:如何使用new.js.erb中的局部變量f渲染RAILS部分?
$('#invoice_against_lease').html('$("<%= j render(:file => 'invoice/new.html.erb') %>")');
我們有部分_customer_quote_record這樣的:
<%= f.input :quote_id, :label => 'Quote#:', :collection => quotes_for_invoice(@customer), :include_blank => true %>
<%= f.hidden_field :_destroy %>
局部在html.erb呈現爲此,與通過局部變量助洗劑:
<%= f.simple_fields_for :invoice_items do |builder| %>
<%= render 'customer_quote_record', :f => builder %>
<% end %>
試過代碼如下:
$('#invoice_against_lease').html('$("<%= j render(:file => 'customer_lease_record', :f => f) %>")');
,誤差"ActionView::Template::Error (undefined local variable or method
F」 ......「`
有沒有一種方法來呈現以上部分中js.erb?
同樣的錯誤。 f是僅存在於視圖中的表單構建器。我的問題是如何將表單生成器傳遞給js.erb中的部分內容。 – user938363 2012-07-27 19:00:55
啊,我現在明白了。不完全確定。你可以使用這裏提供的答案,http://stackoverflow.com/questions/371147/rails-ajax-my-partial-needs-a-formbuilder-instance,並且只是在部分內部使用'fields_for'而不是傳遞它? – Naty722 2012-07-27 19:20:35
嘗試了類似的解決方案(關於傳遞對象而不是表單構建器的另一個類似帖子)。它確實有部分工作。但是,關聯丟失,導致在保存父對象時失敗。出現錯誤:子對象不能爲空。不知道是什麼導致了關聯性的喪失。 – user938363 2012-07-27 20:31:20