2010-04-07 2 views
0

github urlКак отображать два разных объекта в поиске?

Я использую простой поиск, который отображает результаты поиска:

@adds = Add.search(params[:search]) 

В дополнение к результатам поиска Я пытаюсь использовать метод, Nearbys(), которая отображает объекты, которые близки в непосредственной близости от результата поиска. Следующий метод отображает объекты, близкие к 2, но не отображает объект 2. Как отобразить объект 2 в сочетании с соседними объектами?

@adds = Add.find(2).nearbys(10) 

Хотя вышеуказанные функции коды, когда я использую поиск, @adds = Add.search(params[:search]).nearbys(10) Нет ошибка метод не возвращается, undefined method Nearbys' для массива: 0x30c3278`

Как я могу найти модель для объекта и использование Метод nearbys() И отображать все возвращенные результаты?

Модель:

def self.search(search) 
    if search 
     find(:all, :conditions => ['address LIKE ?', "%#{search}%"]) 
     # where('address LIKE ?', "%#{search}") 
    else 
     find(:all) 
    end 
    end 
+1

Это поможет, если вы сможете показать нам определение метода 'search'. –

+0

получил там –

+0

И ответил. Надеюсь, я прибил его. –

ответ

1

Когда вы найдете (2), объектная модель возвращается, но если вы найдете (: все), и массив возвращается.

Метод nearbys будет работать только на экземпляре объекта модели. Что делать, если ваш метод поиска возвращает массив из 10 адресов? Вы не можете просто вызвать рядом с массивом, вам нужно пройти через ваш массив и применить рядом с каждым адресом, полученным в цикле.

0

Не видя ваш близлежащий метод, который я могу только о сказать, что это идеальный вариант использования для scoped:

def self.search(term) 
    if term 
    scoped({ :conditions => ["address LIKE ?", term] }) 
    else 
    scoped({}) 
    end 
end 

Если nearby определен в классе, как я думаю, что он будет использоваться, как это :

Model.search("pizza").nearby 

И , что как вы можете сфера.

Смежные вопросы