2017-04-20 51 views
0

我想添加一個複選框到頁面上的一個元素上,然後將一個ID集合(如果選中該複選框)傳遞給控制器​​。帶複選框標籤和按鈕的傳遞id集合

在我看來,我有...

<% @roles.each do |role| %> 
     <li> 
     <%= check_box_tag 'blah_ids[]', role.id -%> 
     <%= h role.name -%> 
     </li> 
    <% end %> 

...只有這個提交按鈕...

<%= button_to 'Call Action', bulk_update_path('blah_ids[]'), method: :post %> 

在我的控制,我只是呼籲一個看跌期權PARAMS像這樣...

def bulk_update 
    puts "Made it to controller; ids are: " + params.inspect 
    redirect_to blah_path 
    end 

...並獲得...

Made it to controller; ids are: {"authenticity_token"=>"0ptHDPrSW9sjRYmsoPb/WyuTQxiR60RzVom9h4HjdWo=", "controller"=>"blah", "action"=>"bulk_update", "format"=>"blah_ids[]"} 

注意blah_ids[]上面是空白。我期待看到選中的複選框的ID。任何幫助讚賞。

+0

我沒有得到你的問題。但是我發現在收集路徑中未指定的參數被視爲'params [:format]'的格式或值,就像你的控制器檢查參數一樣。 – Mayank

+0

@Mayank我更新了這個問題。注意上面的blah_ids []是空的。我期待看到選中的複選框的ID。 – Lumbee

回答

0

的問題是,我需要這個包在我認爲一個的form_tag和使用泛型submit_tag是這樣的...

<%= form_tag bulk_update_path(method: :post) do %> 
    <% @roles.each do |role| %> 
     <li> 
     <%= check_box_tag 'blah_ids[]', role.id -%> 
     <%= h role.name -%> 
     </li> 
    <% end %> 
    <%= submit_tag %> 
<% end %>