2011-11-04 2 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 %> 

И в контроллере, я читаю все идентификаторы бенефициаров, как этот

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 

Что мне нужно, вставить все идентификаторы бенефициаров [beneficiaryloans ], которые проверяются, но в моем случае он вставляет все записи, даже некоторые из них не отмечены.

Как сделать Я выбираю только проверенные идентификаторы?

+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 не имеет никакого влияния на модели вы можете просто удалить его из результирующих хеши-бенефициарии.

Смежные вопросы