我正在学习如何使用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
正在恢复NULL后我尝试做到这一点@arrRooms.delete(room)
我不知道是否有更好的方式来做到这一点,但我试图做它像一个教程,我发现