Именованная область действия для ассоциации has-many и принадлежности-to - PullRequest
0 голосов
/ 15 мая 2011
  • RaceWeek имеет много выборов
  • Пик принадлежит RaceWeek

  • RaceWeek имеет атрибут start_date и атрибут end_date.

  • У выбора есть разрешенный атрибут.

Я хочу вернуть все пики, связанные с записями RaceWeek, которые попадают между (указанными) start_date и end_date, И затем обновить все разрешенные атрибуты в записях пиков до 0.

Каков наилучший способ сделать это, используя комбинацию named_scopes или чего-то еще? Чем эффективнее, тем лучше. Я в порядке с чисто SQL решением.

Я на Rails 2.3.11.

1 Ответ

0 голосов
/ 15 мая 2011

Вы можете обновить с помощью простого SQL-запроса:

UPDATE picks SET resolved = 0
WHERE race_week_id IN
  (SELECT id FROM race_weeks
  WHERE start_date > '2011-01-15' AND end_date < '2011-06-15');
...