[model MIASTA]:
has_many :notes, :class_name => "id"
Mówiąc najprościej potrzebuję połączyć te dwie kolumny joinem, ale nie wiem jak, mógłby mi ktoś pomóc?
Jak masz tak zapisane modele to nie pisze się note.client_city.city
tylko poprostu note.city
W Railsach przy łączeniu tabel nie jest ważne w kontorlerze jak nazywa się pole łączące w modelu. Bo join jest robiony dla tabel a nie dla pól.
[quote=wafcio]Jak masz tak zapisane modele to nie pisze się note.client_city.city
tylko poprostu note.city
W Railsach przy łączeniu tabel nie jest ważne w kontorlerze jak nazywa się pole łączące w modelu. Bo join jest robiony dla tabel a nie dla pól.[/quote]
City czego? Klienta czy ekranu?
Hmm, jeśli dobrze Cię zrozumiałem to notka ma klienta i ekran. Zarówno ekran jak i klient mają miasto, więc odwołanie się do miasta z notki może wyglądać tak:
note.client.city
note.led.city
class Note
belongs_to :client
belongs_to :led
end
class Led
belongs_to :city
has_many :notes
end
class Client
belongs_to :city
has_many :notes
end
class City
has_many :leds
has_many :clients
end
[quote=kbl]Hmm, jeśli dobrze Cię zrozumiałem to notka ma klienta i ekran. Zarówno ekran jak i klient mają miasto, więc odwołanie się do miasta z notki może wyglądać tak:
note.client.city
note.led.city
[code ruby]
class Note
belongs_to :client
belongs_to :led
end
class Led
belongs_to :city
has_many :notes
end
class Client
belongs_to :city
has_many :notes
end
class City
has_many :leds
has_many :clients
end
[/code][/quote]
Jasne. Fakt, za mało napisałem o problemie. Potrzebuję tych danych w tabelce notes, bo chcę sortować po tej kolumnie, jeżeli się tylko odwołam to nie dam rady sortować danych.
Czyli jeszcze raz: w tabelce NOTES mam client_city_id oraz led_city_id po to abym mógł sortować po tych tabelkach, problem jest ze zbudowaniem relacji i wyciągnięciem danych.
mozesz sortować po danych z innej tabeli, zrób złączenie i posortuj wtedy nie ma problemu. Rayan ma screencast o join i include. Obejrzyj, może się wyjaśni. No możesz też posortować później w ruby, ale po co jak moze to baza juz zrobic
Ech no ale pod tym sortowaniem w locie jest jakieś zapytanie pewnie robione? A jak nie to masz od początku tablicę, i tylko przez js sortujesz. Jest wiele pluginów fajnych do sortowania bardziej skomplikowanego w jQuery.
Tak czy inaczej, nie rozumiem z czym masz problem. Jak zrobisz relacje, wyciagniesz dane, to sortowanie w bazie lub po stronie klienta to żaden problem przecież