2011-11-04 66 views
2

傢伙我check_box_tag看起來如下如何僅使用check_box_tag選擇已檢查的記錄?

<%= form_tag({:action => 'update_survey_list_status',:projectid=>params[:id], :status=>4}, :id => 'to_be_approved_frm') do %> 
    <% @publishedlist.each do |b| %> 
    <%= fields_for "beneficiaryloan[#{b.id}]" do |bloan| %> 
     <%= bloan.text_field :amount, :class=>'forms_txtbx'%> 
     <%= bloan.text_field :rate, :class=>'forms_txtbx'%> 
     <%= bloan.text_field :period, :class=>'forms_txtbx'%> 
    <% end %> 
    <%= check_box_tag "benificiary_id[#{b.id}]",b.id,:name => "benificiary_id[]"%> 
    <% end %> 
    <%= submit_tag "Approve", :class=>'form_buttons' %> 
<% end %> 

而且在控制,我閱讀完所有的受益人IDS這樣

params[:beneficiaryloan].each do |key, value| 
     beneficiary = Beneficiary.find(key) rescue nil 
     @benefciary_loan=beneficiary.beneficiaryloans.build(value) 
     @benefciary_loan.beneficiary_id=beneficiary.id 
     @benefciary_loan.hfi_id=session[:id].to_s 
     @benefciary_loan.status_id=params[:status] 
     @benefciary_loan.save if beneficiary 
end 

我需要的是,插入所有受益人ID來[beneficiaryloans ]表被檢查,但在我的情況下,它插入所有記錄,甚至其中一些未選中。

如何選擇僅檢查ID?

+0

你如何儲存哪些受益人被檢查? – mliebelt

回答

3

試着改變你的到

<%= check_box_tag "beneficiaryloan[#{b.id}][enabled]", 1, true %> 

然後在你的控制器執行以下操作:

params[:beneficiaryloan].select{|k,v| v.delete(:enabled).to_i > 0 }.each do |k,v| 
    .. 
end 

由於enabled屬性在模型中沒有影響,你可以刪除它從產生的beneficiary_load哈希。