如何使用带有其他文本框的复选框

时间:2014-04-14 13:38:38

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord

我的表单中有多个复选框,工作得很好。我需要提供更多选项来添加 比如四个chkbox然后是一个与它们相关的文本字段

我的模型看起来像

  

PaymentGateway.rb

     

has_many:payment_rfps

     

has_many:rfps,:through => :payment_rfps

class PaymentRfp<的ActiveRecord ::基

attr_accessible:payment_gateway_id,:rfp_id

  

belongs_to:payment_gateway

     

belongs_to:rfp   端

rfp.rb

  

has_many:payment_rfps

     

has_many:payment_gateways,:through => :payment_rfps

我的观点部分

    <div class = "lft_cms" ><b>Payment Gateways</b>
     <div class="field">
     <%= hidden_field_tag "rfp[ payment_gateway_ids][]", nil %>
       <% PaymentGateway.all.each do |payment_gateway| %>
         <%= check_box_tag "rfp[payment_gateway_ids][]",payment_gateway.id, @rfp.payment_gateway_ids.include?(payment_gateway.id), :id => dom_id(payment_gateway) %>
          <%= label_tag dom_id(payment_gateway), payment_gateway.name %><br>
<% end %>

   </div>

如何添加文本字段以提供额外的填充选项 感谢任何帮助。谢谢

1 个答案:

答案 0 :(得分:0)

首先,PaymentGateway.all是一个坏主意。这不应该在视图中,而是从实例变量中的控制器加载。请改变它。

这样做的一种方法是定义一个属性,让我们说'additional_info':

<% PaymentGateway.all.each do |pg| %>
  <%= check_box_tag ..., onclick: "$('#{pg}_info').show(); $('#{pg}_info').siblings().hide();" %>
  ...
<% end %>

<div class="additional_infos">
  <%= f.input :gateway1_info, label: "Gateway" ... %>
</div>