я в настоящее время есть таблица, в которой перечисляются в следующем порядке:переплета Переменные в Ruby,
projects = Project.find(:all, :conditions => [conditions + "AND (name LIKE ? OR description LIKE ?)", "%#{params[:query]}%", "%#{params[:query]}%"])
где
conditions = Project.in_used_projects(:alias => "projects")
Однако мне нужно включить 3-ю переменную, которая не из таблицы проекта, но из таблицу тегов. Мне нужна колонка Tag - > Names
. В любом случае я могу привязывать переменные из другой таблицы в Ruby? Project.find(all)
автоматически передает SELECT * FROM Project
в MYSQL. Кто-то предложил использовать функцию соединения, но я не уверен, как это будет работать. Есть идеи?
EDIT 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 '%%')
Очень странно, учитывая таблица проектов exi с. Почему Ruby не признает это сейчас, когда я включил другую таблицу?
Mysql :: Ошибка: Неизвестные таблицы 'projects': SELECT `projects`. * FROM` projects` tags WHERE ((projects.status = 2) AND (projects.name LIKE '%%' OR projects.description LIKE '%%' ИЛИ tags.name LIKE '%%') – TheRealVayne 2010-12-01 08:52:21
projects = Project.find (: all,: joins => " теги ",: условия => [условия +" И (project.name LIKE? OR projects.description LIKE? ИЛИ tags.name LIKE?) ","% # {params [: query]}% ","% # { params [: query]}% ","% # {params [: query]}% "] .flatten) – TheRealVayne 2010-12-01 08:53:18