我正在使用Rails构建器来构建多个:pay
对象
<%= f.fields_for :pay do |builder| %>
<%= render "non_taxable_pays", :f => builder %>
<% end %>
根据需要多次渲染_taxable_pays
_taxable_pays.html.erb
<div class="row">
<%= f.hidden_field :employee_id %>
<%= f.hidden_field :ee_pay_id %>
<%= f.hidden_field :pay_sub_head_id %>
<div class="col-md-5">
<div class="col-md-5">
<div class="form_indent1"><div class="form_indent1"><%= f.object.ee_pay.company_pay.description %></div></div>
<div class="form_spacer"></div>
</div>
<div class="col-md-7">
<div class="form_indent1"><span>€ </span><%= f.text_field :rate, value: number_to_currency(f.object.rate), class: "currency_input" %></div>
<div class="form_spacer"></div>
</div>
</div>
<div class="col-md-7">
<div class="col-md-4">
<div class="form_indent1"><%= f.text_field :amount, value: number_to_currency(f.object.amount, :unit => ""), class: "number_input" %></div>
<div class="form_spacer"></div><br />
</div>
<div class="col-md-4">
<div class="form_indent1"><%= f.object.ee_pay.company_pay.units %></div>
<div class="form_spacer"></div>
</div>
<div class="col-md-4">
<div class="form_indent1"><span>€ </span><%= number_to_currency(f.object.rate*f.object.amount) %></div>
<div class="form_spacer"></div>
</div>
</div>
</div>
我的问题在于上面的部分_taxable_pays
。在上一节中,我的代码显示了值* f.object.rate*f.object.amount
。当页面首次显示时,这很好,因为它根据数据库中的值计算它。
如果用户更改了包含:rate
或:amount
的text_fields中的值,我现在希望使用jQuery动态更新此字段。但是对于我的生活,我无法弄清楚我应该如何将id分配给不同的渲染器或使用jQuery访问它们。
有人能指出我正确的方向吗?
感谢您寻找
答案 0 :(得分:0)
所以这篇文章帮我提出了我的解决方案
Creating unique id for <fieldset> when using form_for Rails Nested Model Form
我把它放在_taxable_pays
部分
<% partial_type = "#{f.object.class}" %>
<% partial_id = "#{f.object.id}" %>
然后我就可以将id分配给所需的元素,例如
<span id="<%= "#{partial_type}-value-#{partial_id}" %>
将来可能会帮助某人