Я смотрю на картинку с изображением Райана Бейтса (хотя и на более старую), где он реализует некоторые простые функции поиска. Я просто хочу получить лучшее понимание, поскольку я стараюсь реализовать что-то более сложное в своем приложении.Запрос на поиск через контроллер или модель
В контроллере он
def index
@products = Product.search(params[:search]).paginate(:per_page => 5, :page => params[:page])
end
, а затем метод класса (в модели) из
def self.search(search)
if search
find(:all, :conditions => ['name LIKE ?', "%#{search}%"])
else
find(:all)
end
end
Его метод поиска в своей модели, где, как им мое заявление я построить свой поисковый запрос в моем контроллере
class PublicController < ApplicationController
def rehomed
conditions = {}
conditions.merge!(animal_type: params[:animal_type]) if params[:animal_type].present?
conditions.merge!(rehomed: params[:rehomed]) if params[:rehomed].present?
conditions.merge!(users: {town: params[:animal_town]}) if params[:animal_town].present?
@animals = Animal.joins(:user).where(conditions).paginate(:page => params[:new_page], :per_page => 6)
end
end
Есть ли недостаток, который я делаю, или должен ли я создавать свой q uery в моей модели?
Thanks
Я бы сделал это в модели, это просто кажется более чистым для меня. Не поклонник иметь много логики в контроллере, если я могу избежать этого. –
ok следующий вопрос, тогда как я могу преобразовать то, что мне нужно использовать в модели? было бы большой помощью, если бы вы могли помочь – Richlewis