私がしたいのは、2つの列を1つのチェックボックスの値で検索することです。Rails:check_box_tagの値で2つの列を検索する方法
steps
モデルはplace1
とplace2
の列を持ちます。
class CreateSteps < ActiveRecord::Migration
def change
create_table :steps do |t|
t.integer :place1
t.integer :place2
t.integer :time
t.timestamps null: false
end
end
end
1つの列しか検索できません。ビューは次のとおりです。
<%= form_tag(steps_path, :method => "get", id: "search-form2") do %>
<% @places.each do |p| %>
<%= check_box_tag('place[place1][]', p.id) %>
<%= label_tag(p.id, p.id)%>
<% end %><br>
<%= submit_tag "Search" %>
<% end %>
<% if @choices.present? %>
<% @choices.each do |c| %>
<%= c.place1 %>, <%= c.place2 %>, <%= c.time %><br>
<% end %>
<% else %>
<p>not exist</p>
<% end %>
コントローラは次のとおりです。
class StepsController < ApplicationController
def index
@places = Place.all
if params[:place]
@choices = Step.where(steps: params[:place]).order(time: :asc)
end
end
end
私に助言を与えることができれば幸いです。
EDIT
マイビュー画像は、次の通りです。
[ ] check box 1
[ ] check box 2
[ ] check box 3
[ ] check box 4
[ ] check box 5
[Seach button]
サンプルレコードは以下のとおりです。
Place1 place2
1 2
1 3
1 4
1 5
2 3
2 4
2 5
3 4
3 5
4 5
チェックボックス2,4,5がチェックされている場合、私の期待値は3レコードです。 {2,4}、{2,5}、{4,5}である。
チェックボックス1,3,4,5がチェックされている場合、私の期待値は6レコードです。 {1、3}、{1,4}、{1,5}、{3,4}、{3,5}、および{4,5}である。
@Nimirさん、ありがとうございました。私は自分の投稿(投稿の後半)を編集し、私がしたい画像を追加します。あなたの時間をありがとう。 – SamuraiBlue