Obsluga zwracanej tablicy

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.