我正在使用Rails 5.2.2。我有一个remote: true
的表格。我有一个部分显示运输方法,在此我提供嵌套的运输方法以用于报价。我的表单也接受嵌套属性。
我的表单工作正常,但是在更新时,我想呈现已更新的运输方法(如果它们已更改),但是由于我将原始表单传递给我的部分,因此更新时没有可用的变量。这是我的部分
_shipping_rates.html.erb
<h2> Shipping Rates</h2>
<div id="quote-shipping-rates">
<%= form.collection_radio_buttons(:shipping_method_id, quote.shipping_methods.sort_by(&:price), :id, :name, { checked: quote.shipping_method_id }) do |b| %>
<%= b.radio_button %>
<%= b.label %>
(<span class="text-red"><%= number_to_currency(b.object.price) %></span>)
<br />
<% end %>
在初始页面加载中,我这样称呼局部页面:
<%= render 'shipping_methods', :form => u , :quote => @quote %>
在更新时,我有以下文件,该文件执行JavaScript以更新DOM。
update.js.erb
我想做这样的事情,但是我不确定是否有某种Rails方式可以重新创建表单变量并将其传递给局部变量。
$("#quote-shipping-rates").html("");
$("<%= escape_javascript(render :partial => "shipping_methods", :form => u , :quote => @quote) %>").appendTo("#quote-shipping-rates");