0
我有一個Filter類用於過濾轉租列表。在我的過濾器類中,我有一個Listing方法,該方法返回符合用戶在表單中輸入的條件的所有列表。這是過濾器類。Rails查詢數組是否包含其他數組
class Filter < ActiveRecord::Base
attr_accessible :air_conditioning, :available_rooms, :bathrooms, :furnished, :negotiable, :new, :parking, :maximum_price, :private_bathroom, :show, :term, :total_rooms, :utilities, :washer_dryer
serialize :term
def listings
@listings ||=find_listings
end
private
def find_listings
listings=Listing.order(:price)
listings=listings.where("listings.price <= ?", maximum_price) if maximum_price.present?
listings=listings.where(total_rooms: total_rooms) if total_rooms.present?
listings=listings.where(available_rooms: available_rooms) if available_rooms.present?
listings=listings.where(bathrooms: bathrooms) if bathrooms.present?
listings=listings.where(term: term)
listings=listings.where(furnished: furnished)
listings=listings.where(negotiable: negotiable)
listings=listings.where(utilities: utilities)
listings=listings.where(air_conditioning: air_conditioning)
listings=listings.where(parking: parking)
listings=listings.where(washer_dryer: washer_dryer)
listings=listings.where(private_bathroom: private_bathroom)
listings
end
end
有問題是行
listings=listings.where(term: term)
期限保存爲可序列化的字符串。 Aka ['Summer','Fall]用戶選中複選框以選擇可以使用哪些條款。但是,where子句每次都失敗。如何檢查用戶選擇的元素是否包含在列表條款中?
這不是一個查詢,雖然 – 2013-03-03 21:42:01
你是對的,這不是一個查詢。當您嘗試運行您發佈的代碼時,您會得到什麼錯誤?列表模式是什麼樣的?由於它是Ruby對象的序列化字段,因此您可能無法在類似的SQL查詢中使用它。但是你可以在從數據庫中得到結果後進行過濾,例如: listings.find_all {| l | l.include? term} – Ari 2013-03-03 21:46:51