Mianowicie mam modele ‘Buildings’ i ‘CostBuildings’ połączone ze sobą 1:1 (has_one, belongs_to)
Tabela ‘Buildings’ ma kolumny ‘name’ , ‘description’ , natomiast ‘CostBuildings’ ‘building_id’ i ‘cost’
Chciałym zebrać wszystkie budynki posortowane po cenie.
Składnia:
Korzystając z zapytania SQL połączył bym pewnie tabele poleceniem JOIN i wydawało by się ok.
Wydawać by się mogło (mylnie?) że zrobi to za mnie polecenie has_one, belongs_to w Modelach.
Prosiłbym o jakąś wskazówkę jak mógłbym rozwiązać ten problem.
W takim razie wpisujesz Building.all(:include => :cost_building, :order => 'cost_buildings.cost ASC')
ale osobiście użyłbym składni bez nawiasów czyli Building.all :include => :cost_building, :order => 'cost_buildings.cost ASC'
Poczytaj sobie http://apidock.com/rails/ActiveRecord/Base/find/class
[quote=wafcio]ale osobiście użyłbym składni bez nawiasów czyli Building.all :include => :cost_building, :order => 'cost_buildings.cost ASC'
Poczytaj sobie http://apidock.com/rails/ActiveRecord/Base/find/class[/quote]
Warto tak spróbować bo imo czytelniej:
[quote=mleszcz]Building.include(:cost_buildings).order(:cost)
[/quote]
Jeśli można się jeszcze wtrącić, to mógłbyś podać jakieś dokumentację API do tego co napisałeś, bo ja tego nie znalazłem.