Задать вопрос
AlexeevVyacheslav
@AlexeevVyacheslav
Веб-разработчик из Иркутска

[Ruby,Sinatra,Datamapper] Как сделать выборку элементов по ассоциации order by ID отеческого?

Всем привет!
Есть модель Mainstack, у которой есть belongs_to :song, и есть модель Song, у которой has n, :mainstacks
Мне нужно сделать выборку Mainstack.all.songs но отсортировать ее по ID отеческих Mainstack
Mainstack.all(:order => [id]).songs не срабатывает, все равно сортируется по songs.id
  • Вопрос задан
  • 254 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Able1991
@Able1991
Пишу на рельсах
Раз уж пишете на руби, то пишите правильно
@songs = Mainstack.all( :order => [:id.desc]).map { |m| m.song }

Ну а сортировку можно так сделать
@songs = Song.all(:order => [Song.mainstacks.id.desc])
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
AlexeevVyacheslav
@AlexeevVyacheslav Автор вопроса
Веб-разработчик из Иркутска
@Mainstacks = Mainstack.all( :order => [:id.desc])
		@songs = []
		@Mainstacks.each do |mainstack|
			@songs << mainstack.song
		end

Сделал так, но мне кажется, что это не самое лучшее решение, есть идеи?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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