Rails находит конкретную запись в таблице с областями видимости - PullRequest
1 голос
/ 19 апреля 2011

Новичок в рельсах ... все еще пытаюсь понять все "методы"

Таблица называется Историей.

   @compa = History.scoped(:limit => 10,:conditions => {:name => "IBM"}, :order => "closedate ASC")

Теперь я хочу выяснить, является ли это подмножество @compaтаблица содержит запись, где закрытый = конкретная дата.Я перепробовал все виды методов, но, похоже, ничего не работает.

Пример:

if (@compa.has_value?(tmp))

Не работает.

Должен ли я работать в подмножестве,или вернуться к столу и сделать новую область?Как я могу работать в подмножестве ... Я что-то упускаю, я уверен.

1 Ответ

2 голосов
/ 19 апреля 2011

Так что вы хотели бы что-то вроде:

if(@compa.include?(tmp))

Чтобы узнать, имеет ли @compa значение, tmp.

Однако @compa содержит атрибуты, отличные от closedate. Итак, вы хотели бы:

@compa.find{|o| o['closedate'] == tmp}

Это вернет nil, если оно не содержит этого значения, в противном случае он вернет объект, который имеет closedate, равный tmp.

Однако почему бы не использовать SQL для обработки этого:

Поскольку @compa является отношением ActiveRecord (потому что вы вызвали scoped), вы можете запросить его больше, выполнив что-то вроде:

@compa.where(:closedate => tmp).exists?

Ссылки:

Массив # включают

перечислимых # найти

существует?

...