将表单传递给具有远程真实更新的部分-Rails

时间:2019-07-02 14:22:43

标签: ruby-on-rails ruby-on-rails-5

我正在使用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");

0 个答案:

没有答案