Usuwanie danych z dwóch tabel

Cześć!
Pracuje nad aplikacją, która będzie taką bazą danych pracowników. Mam stworzone dwie tabele, pierwsza to Pracownicy, a druga to Stanowiska. Mam już obsłużone przypisywanie pracownika do odpowiedniego stanowiska. W tabeli pracowników jest pole stanowisko_id. Problem zaczyna się wtedy gdy usuwam stanowisko z bazy, wszystko jest ok w tabeli Stanowisko lecz w tabeli Pracowników nadal zostaje przypisane id stanowiska. Nie wiem jak zrobić by jednocześnie wraz z usunięciem danego stanowiska, czyściły się też dane z pola stanowisko_id w tabeli pracowników. Z góry dzięki za poświęcony czas :wink:

  1. Zacznij stosować angielskie słowa określające tabele.
    Rails’y “odmieniają po angielsku” i dlatego będziesz często stosował konstrukcje typu

Worker.find(coś tam)

lub

@position = Position.find_by(name: “director”)
@position.workers

Widzisz w/w wpis, który pokazuje wszystkich pracowników, którzy są dyrektorami?

Dlatego na początek, to przestaw się na angielski.

  1. A jak to zrobisz, to pokaż nam modele, a my napiszemy Ci fragment:

    class Worker < ActiveRecord::Base
    belongs_to :position


    end

    class Position < ActiveRecord::Base
    has_many :workers, dependent: …


    end

…A może samemu to odnajdziesz? :smile:

Dzięki za zmuszenie do poszukania :smiley:

dependent: :nullify

i wszystko działa :wink: próbowalem też z:

@pracownik=Pracownik.find_by(:stanowisko_id=>@stanowisko.id).update_attributes(:stanowisko_id=>nil)

ale nie przyniosło to pożądanego rezultatu.
A co do angielskiego nazewnictwa to wiem, ale to pierwszy projekt i już nie chce zmieniać, od następnego już będzie wszystko jak należy :wink: Dziękuje jeszcze raz.

Jak uważasz.
Mnie jeden gościu zmusił w takiej sytuacji do zmiany i …jestem mu wdzięczny. :smile:
Moim zdaniem warto, bo jeżeli program jest “rozwojowy”, to prędzej lub później ale trafisz na jakąś “minę”.

Jeżeli masz jakiś sensowny edytor, to przecież Pracownik => Worker “replace all” i pracownicy -> workers (itd) powinno pójść błyskawicznie.

…No chyba, że projekt już masz “w produkcji” i są tam załadowane dane.

I jeszcze drobiazg…

Nie pisz

find_by(:stanowisko_id=>@stanowisko.id)

dzisiaj jest “w modzie” (zalecane), by stosować składnię:

find_by(stanowisko_id: @stanowisko.id)

Nie no ten projekt nie jest prze zemnie brany na poważnie, niedawno zacząłem się uczyć, wiec póki co sprawdzam czego się już nauczyłem, uczę się rozwiązywać jakieś tam problemy, ale już od następnego projektu postaram się by wszystko wyglądało czytelniej.

Edytor to Atom.

No wiem właśnie, muszę się przestawić.