私はransackを使う方法を学んでいるので、そこに問題があります。Rails Ransack - 配列から要素を取り除く
2つのテキストフィールド(:search
および:discipline
)を持つフォームがあります。だから私は、1ºフィールドのパラメータAND
2度フィールドのパラメータを使用して検索をしようとしています。
アイデアは1ºパラメータ(フィールド:search
から来ているすべての要素を検索し、その後、2ºパラメータ(フィールド:discipline
)と異なっているすべての要素を削除します。返却され
class PagesController < ApplicationController
def home
@rooms = Room.limit(6)
end
def search
if params[:search].present? && params[:search].strip != ""
session[:loc_search] = params[:search]
end
if params[:discipline].present? && params[:discipline].strip != ""
session[:loc_discipline] = params[:discipline]
end
arrResult = Array.new
if session[:loc_search] && session[:loc_search] != ""
@rooms_address = Room.where(active: true).near(session[:loc_search], 5, order: 'distance')
else
@rooms_address = Room.where(active: true).all
end
@search = @rooms_address.ransack(params[:q])
@rooms = @search.result
@arrRooms = @rooms.to_a
if (session[:loc_discipline] && !session[:loc_discipline].empty?)
@rooms.each do |room|
not_available = Room.where(
"(room_type != ?)",
session[:loc_discipline]
)
if not_available.length > 0
@arrRooms.delete(room)
end
end
end
end
end
マイ@arrRooms
私はこの@arrRooms.delete(room)
を行うみてください後。 私はこれを行うには良い方法を持っている場合は知らないが、私は私が見つけたのチュートリアルのようにそれを行うしようとしている。