перебрать коллекцию и вернуть соответствующий элемент - PullRequest
1 голос
/ 16 ноября 2009

У меня есть аудиофайл с множеством фотографий. Фотография имеет атрибут «основной» (0 или 1 в дБ). Что такое идиоматический рубиновый способ сделать что-то вроде этого: я хочу, чтобы в AudioFile был метод, который возвращает идентификатор основной фотографии, то есть фотографии, которая имеет для основного атрибута установлено значение true.

Ответы [ 2 ]

1 голос
/ 16 ноября 2009

Как правило, рекомендуется установить named_scope в вашей Photo модели.

class Photo < ActiveRecord::Base
  named_scope :primary, :conditions => {:primary => true}
end

Тогда вы можете назвать основной объем ваших фотографий ассоциаций. например,

@audio_file.photos.primary.first

Вы также можете обернуть это вспомогательным методом.

def primary_photo
  photos.primary.first
end

См. http://api.rubyonrails.org/classes/ActiveRecord/NamedScope/ClassMethods.html для получения дополнительной информации и примеров, или google named_scope.

1 голос
/ 16 ноября 2009

Я не уверен, что это то, что вы имеете в виду, но Enumerable # Выбор даст вам все элементы из перечисляемого объекта, которые соответствуют регистру (указанному в блоке).

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