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
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

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

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

Войти через центр авторизации
Похожие вопросы