Rails4を使ってホテル検索システムのようなものを作成しています。
そしてこのシステムの検索機能として、特定の設備を持つ(複数選択可)ホテルを検索して表示する、といったことをRansackを使って実装しようとしています。

例えば、検索画面にて「大浴場」、「レストラン」、「売店」などのチェックボックスを用意してチェックしてもらい、検索するようなシステムです。
ここで問題なのですが、「大浴場」、「レストラン」、「売店」全てにチェックボックスにチェックして、これら3つ全てを持つホテルのみを検索させることができておりません。
3つ全てにチェックしても、3つの内いずれかを持つホテルが表示される状況です。

どのようにしたら解決できるのか、ご教授頂きたいです。
またそもそも前提がおかしいなどありましたらご指摘頂きたいです。
詳細を以下に記載致します。


app/model/hotel.rb

# == Schema Information
#
# Table name: hotels
#
#  id            :integer          not null, primary key
#  name          :string(50)       not null              # ホテル名
#  address       :string(50)       not null              # ホテル住所
#  created_at    :datetime
#  updated_at    :datetime


class Hotel < ActiveRecord::Base
  has_many :equipments,     dependent: :destroy
end


app/model/equipment.rb

# == Schema Information
#
# Table name: equipments
#
#  id                    :integer          not null, primary key
#  hotel_id              :integer          not null              # ホテルid
#  equipmentlist_id      :integer          not null              # 設備リストid
#  note                  :string(100)                            # 設備に関するメモ(利用可能時間等)
#  created_at            :datetime
#  updated_at            :datetime


class Branch < ActiveRecord::Base
  belongs_to :company
  belongs_to :equipmentlist
end


app/model/equipmentlist.rb

# == Schema Information
#
# Table name: equipmentlists
#
#  id                    :integer          not null, primary key
#  name                  :string(50)       not null              # 設備名
#  created_at            :datetime
#  updated_at            :datetime
class Equipmentlist < ActiveRecord::Base
end


app/controller/hotels_controller.rb

class HotelsController < ApplicationController
def index
    @q = Hotel.ransack(params[:q])
    @q.sorts = 'updated_at desc' if @q.sorts.empty?
    @hotels = @q.result.uniq.page(params[:page])
    @equipmentlists = Equipmentlist.all
end


app/views/index.html.erb(検索部分のみ抜粋)

...
<ul>
 <% @equipmentlist.each do |item| %>
 <li>
   <%= f.check_box :equipments_equipmentlist_id_eq, { multiple: true }, item.id, nil %>
   <%= f.label item.name %>
 </li>
<% end %>
</ul>
...



以上になります。
なお、コンソールにて以下のようにすれば、目的の結果が得られるのですが、これをどうやってRansackで実現するのかわかっておりません。

Equipment.where(Equipment.arel_table[:equipmentlist_id].in([8,10])).group(:hotel_id).having("count(*) = ?", 2)

大変初歩的な質問かもしれませんが、どんなことでも結構ですので教えて頂ければ幸いです。
よろしくお願い致します。