Rails将id分配给构建器中的元素以使用jQuery进行访问

时间:2015-04-18 15:37:16

标签: javascript jquery ruby-on-rails

我正在使用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访问它们。

有人能指出我正确的方向吗?

感谢您寻找

1 个答案:

答案 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}" %>

将来可能会帮助某人