모든 매개 변수가 모두 비어 있지 않은지 확인하기 위해 모든 매개 변수를 반복하는 메소드를 작성하고 싶습니다.레일에서 params에 대한 메소드 수행 시도
내 PARAMS은 다음과 같습니다
params[:search][:company]
params[:search][:phone]
params[:search][:city]
params[:search][:state]
params[:search][:email]
나는이 방법이 있습니다
NoMethodError (undefined method `all_blank_check' for #<Class:0x108c08830>):
내가해야합니까 :
def all_blank_check(params)
array=[]
params[:search].each do |key, value|
array << value unless value.blank?
end
if array.count < 1
return true
else
return false
end
end
을하지만, 나는 다음과 같은 오류가 all_blank_check(params)
처럼 뭔가를하려고 할 때 매개 변수를 먼저 배열로 변환 하시겠습니까? params에 대한 메소드를 수행 할 수 있습니까?
편집 - 전체 소스 :
def index
@customers = Customer.search_search(params)
end
def self.search_search(params)
search_field = []
search_values = []
array = []
test = ''
if !params[:search].nil? && all_blank_check(params[:search]
if !params[:search].nil? && !params[:search][:company].blank?
search_field << 'customers.company LIKE ?'
search_values << "%#{params[:search][:company]}%"
end
if !params[:search].nil? && !params[:search][:city].blank?
search_field << 'customers.city = ?'
search_values << "#{params[:search][:city]}"
end
if !params[:search].nil? && !params[:search][:phone].blank?
search_field << 'customers.phone_1 = ?'
search_values << "%#{params[:search][:phone]}%"
end
conditions = [search_field.join(' AND ')] + search_values
Customer.where(conditions).includes(:customer_contacts).limit(10)
end
end
def all_blank_check(params)
params[:search].each do |key, value|
array << value unless value.blank?
end
if array.count < 1
return false
end
if array.count > 1
return true
end
end
전체 소스 코드보기 –