У меня в настоящее время есть таблица, которая перечислена следующим образом:
projects = Project.find(:all, :conditions => [conditions + "AND (name LIKE ? OR description LIKE ?)", "%#{params[:query]}%", "%#{params[:query]}%"])
где
conditions = Project.in_used_projects(:alias => "projects")
Однако мне нужно включить третью переменную, которая не из таблицы Project, а из таблицы Tags. Мне нужен столбец Tag - > Names
. Есть ли в любом случае я могу связать переменные из другой таблицы в Ruby? Project.find(all)
автоматически передает SELECT * FROM Project
в MYSQL. Кто-то предложил использовать функцию соединения, но я не уверен, как это будет работать. Есть идеи?
РЕДАКТИРОВАТЬ 1
Я попытался предложить ответ с использованием
projects = Project.find(:all, :joins => "tags", :conditions => [conditions + "AND (projects.name LIKE ? OR description LIKE ? OR tags.name LIKE ?", ["%#{params[:query]}%" * 3]].flatten)
но сейчас я получаю еще одну ошибку
Mysql::Error: Unknown table 'projects': SELECT
Проекты .* FROM
проекты tags WHERE ((projects.status = 2)AND (projects.name LIKE '%%' OR projects.description LIKE '%%' OR tags.name LIKE '%%')
Очень странно, учитывая, что таблица проектов существует. Почему Руби не распознает это сейчас, когда я включил другую таблицу?