Gdy w widoku wpisze dane i mam je powiązane z uzytkownikem. Laduje mi sie mapa tak jak zalozylem.
Ale gdy wpisuje dane i nie mam uzytkownika do nich przypisanego - wywala mi bląd.
Ktos coś ?
Widok kontrollera
Widok modelu:
Gdy w widoku wpisze dane i mam je powiązane z uzytkownikem. Laduje mi sie mapa tak jak zalozylem.
Ale gdy wpisuje dane i nie mam uzytkownika do nich przypisanego - wywala mi bląd.
Ktos coś ?
Widok kontrollera
Widok modelu:
Workplace.get_by_skill_name
nie znajdując rekordu zwraca nil, powinieneś więc przed pętlą sprawdzić czy workplc
jest puste.
workplc zwraca
workplc = [ [ ] ]
Mój błąd, istnieje funkcja empty? która zwraca true dla pustych tablic, ale twoja pusta nie jest ma jeszcze jeden wymiar, workplc.first.empty?
załatwi sprawę, można też porównać obiekt do [[]]
.
http://guides.rubyonrails.org/active_record_querying.html#specifying-conditions-on-the-joined-tables
Porównanie obiektu - tak zalatwia sprawe ale puźniej wyżuca bląd .
A w jaki sposób workplc.first.empty? pomoże?
zamiast
user_ids = Skill.where(name: skill_name).map &:user_ids w modelu
dac
user_ids = Skill.where(name: skill_name).where(‘user_id is exist’).map &:user_ids
tylko w - where(“user_id is exist”) - tu mam zla skladnie(jak zapisac ja poprawnie), szuka naszego user_id ale on nie istnieje.
Co by mozna zwrócic, bo jeżeli wystepuje zwraca tablice z elementem a gdy nie znajdzie zwraca pusta tablice?
User.joins(:skills).where(skills: { skill_name: skill_name })
Czy jakoś tak. Koniec. + do takich rzeczy raczej scope’y niż statyczne metody, ale to jak już wolisz.