이것은 현재 작동하고 있지만, 저는 이것이 매우 엉성하다는 것을 확신합니다. 이 논리를 모두 얻는 방법에 대한 정보는 더 많은 레일입니다. 이걸로 will_paginate
을 구현하려고하는데, 먼저 올바른 레코드를 선택하는 더 깨끗한 방법이 필요합니다.이 논리를 find 메소드로 이동 하시겠습니까?
#shoe table
-------------------------------------
size | brand | color | sold
-------------------------------------
8 somebrand black false
10 another brown true
-------------------------------------
def index
@shoes = Shoe.find_all_by_sold(false, :include => :assets)
#params[:size] = '8,9,10,11,11.5' || '8,9' || 'all'
if params[:size]
sizes = params[:size].split(',')
@shoes.reject! { |shoe| !sizes.include?(shoe.size.to_s) } unless sizes.include?('all')
end
# params[:color] = 'brown,black' || 'brown' || 'all'
if params[:color]
colors = params[:color].split(',')
@shoes.reject! { |shoe| !colors.include?(shoe.color.parameterize) } unless colors.include?('all')
end
# params[:brand] same as the others
if params[:brand]
brands = params[:brand].split(',')
@shoes.reject! { |shoe| !brands.include?(shoe.brand.parameterize) } unless brands.include?('all')
end
end
봐 그냥'발견 conditions', 즉 땜질 ... –