Задать вопрос
ammet
@ammet
Ruby on Rails developer

Ruby On Rails — как отрефакторить (массив Ruby)?

1.)tournament = Tournament.where("date = ?", date)"
2.)arr = []
3.)tournament.map do |x|
4.) arr += [x.id] if x.tournament_locales.where(:locale=>"ru").count > 0
5.)end
6.)return arr

Строчки 2-6. Часто приходится делать подобное, особенно не нравится это явное объявление переменной. Возможно, есть какое-то более не костыльное решение?
  • Вопрос задан
  • 2617 просмотров
Подписаться 4 Оценить Комментировать
Решения вопроса 1
mgyk
@mgyk
tournament.select{|x| x.tournament_locales.where(:locale => "ru").count > 0 }


Хотя в этом примере гораздо лучше на стороне БД это сделать.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Able1991
@Able1991
Пишу на рельсах
Юзай DataMapper
arr = Tournament.all(:conditions => {Tournament.date => date, Tournament.tournament_locales.locale => 'ru'})
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы