foo = Foo.create(bar: bar)
foo.bar_id = 5 # inne id, ale poprawne
foo.save # bar_id sie nie zapisuje
foo.reload
foo.bar_id = 5 # inne id, ale poprawne
foo.save # bar_id sie zapisuje
Ale dotyczy to tylko jednej relacji (zmienianie innych relacji w ten sposob dziala
Nie moge pokaz kod (NDA), moze ktos mial podobny przypadek? Mozecie tez podac linki do kodu rails ktory generuje metode bar_id=, moze cos tam znajdziemy, dzieki!
Najpierw spróbuj create! zamiast create. Może rekord nie jest tworzony z powodu jakiejś walidacji?
Jeżeli to nic nie wyjaśni to warto też sprawdzić wszystkie callbacki (before_*) i walidacje zdefiniowane na tym modelu. Wyłącz wszystkie i zobacz czy problem wciąż występuje.
Hmm, save zwraca true, ale jest to jakis trop - nie sprawdzalem save. Na pewno jak bedziemy to debuggowac (na razie poprawilismy to robiac #reload) zrobimy wykomentowywanie wszystkiego po koleji, po polowie (bisect).