讓行,我不熟悉的元搜索,但在搜查(Rails中4 ),你可以使用這樣的事情:
機型:
class User < ActiveRecord::Base
has_many :user_vehicles
has_many :vehicles, through: :user_vehicles
end
class UserVehicle < ActiveRecord::Base
belongs_to :user
belongs_to :vehicle
end
class Vehicle < ActiveRecord::Base
has_many :user_vehicles
end
控制器:
class UsersController < ApplicationController
def index
@q = User.search(params[:q])
@users = @q.result(distinct: true)
end
end
查看:
<%= search_form_for @q , url: users_path, :html => { class: 'your-class' } do |f| %>
<% Vehicle.all.each do |vehicle| %>
<%= check_box_tag('q[vehicles_id_eq_any][]', vehicle.id) %>
<%= vehicle.name %>
<% end %>
<%= f.submit "Search" %>
<% end %>
<%= paginate(@users) %>
<ul>
<% @users.each do |i| %>
<li><%= i.name %></li>
<% end %>
</ul>
<%= paginate(@users) %>
您還可以使用寶石進行分頁,如果你還沒有使用一個。我使用Kaminari。在這種情況下,您的控制器和視圖看起來是這樣的:
控制器:
class UsersController < ApplicationController
def index
@q = User.search(params[:q])
@users = @q.result(distinct: true).page params[:page]
end
end
查看:
<%= search_form_for @q , url: users_path, :html => { class: 'your-class' } do |f| %>
<% Vehicle.all.each do |vehicle| %>
<%= check_box_tag('q[vehicles_id_eq_any][]', vehicle.id) %>
<%= vehicle.name %>
<% end %>
<%= f.submit "Search" %>
<% end %>
<%= paginate(@users) %>
<ul>
<% @users.each do |i| %>
<li><%= i.name %></li>
<% end %>
</ul>
<%= paginate(@users) %>