Рефакторинг SQL - PullRequest
       8

Рефакторинг SQL

0 голосов
/ 23 июля 2010

Я должен подключиться из моего приложения Rails к удаленной базе данных в приложении Java.

У меня такой запрос:

find_by_sql("select c_templateid, c_templateinfoid, c_startdate, c_enddate, c_active,
campaign, shortcode, prefix, c_descriptivename, c_description, c_templatename 
from (active_services aser join activity a on aser.c_primaryprefixid =
a.c_primaryprefixid ) join matrix_templateinfo using(c_templateinfoid) 
where campaign is not null)")

Мне нужно реорганизовать его в AR #Метод find (), потому что я хочу позже добавить сложный: условия на него.Я не хочу преобразовывать их в строку, чтобы потом добавить в метод find_by_sql.

find(:all, 
  :select => "c_templateid, c_templateinfoid, c_startdate, c_enddate, c_active,
  campaign, shortcode, prefix, c_descriptivename, c_description, c_templatename",
# :joins => WHAT I SHOULD DO HERE ?
  :conditions => "campaign is not null"
)

1 Ответ

1 голос
/ 23 июля 2010

Вы также можете указать сложные объединения в: объединения

:joins => "matrix_templateinfo ON <conditions go here> AND campaing IS NOT NULL"

но вы действительно должны начать падронизировать имена полей, если вы используете rails:

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