Выбор записи, когда близкое совпадение зависит от предыдущего прямого совпадения в Rails 3 - PullRequest
2 голосов
/ 17 июня 2011

Есть ли умный способ иметь только один выбор для near_matches? Если я нахожу точное совпадение с именем, которое ищу, я не хочу этого в списке ближайших совпадений.

@match = Item.where("name = '" + params[:name] + "'").first
if @match
  @near_matches = Item.where("name like '%" + params[:name] + "%' and id != " + @match.id.to_s)     
else
  @near_matches = Item.where("name like '%" + params[:name] + "%'")      
end

1 Ответ

1 голос
/ 18 июня 2011

Не совсем то, что вы просили, но это немного ужесточает:

@match = Item.find_by_name params[:name]
@near_matches = Item.where('name LIKE ?', "%#{params[:name]}%")
@near_matches = @near_matches.where('id != ?', @match.id) if @match

Это работает, потому что запросы ленивы - они на самом деле не выполняются, пока не должны быть.

Знак вопроса предназначен для более безопасной переменной связывания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...