Cześć! Na początku chciałem powiedzieć że jestem początkującym programistą RoR więc być może mój problem jest trywialny do rozwiązania lecz ja męczę się z nim od dłuższego czasu.
Więc mam prostą aplikację na projekt zaliczeniowy na uczelni (pisałem ją około 20h więc są pewne niezgodności, nie trzymanie się pewnych standardów itd.) https://github.com/kamnog/e-rate. Mój problem polega na tym iż mam klasę Group i Pupil. Wszystko jak na razie działa w aplikacji lecz nie mogę aktualizować uczniów w danej klasie, tj.
- wybieram klasę -> edytuje -> i aktualizuje pole pupil_id
Kiedy zapiszę pole pupil_id się aktualizuje do danej wartości którą przekazałem, lecz nie aktualizuje mi się liczba uczniów w danej klasie, oraz uczeń nie zostaje przypisany do danej klasy.
W konsoli kiedy (po aktualizacji pola) szukam danej klasy, pole się aktualizuje, przykładowo w formularzu edycji mam klasę o id=7, i chcę dodać do klasy ucznia o id 8:
2.0.0-p247 :001 > g = Group.find(7)
Group Load (2.0ms) SELECT “groups”.* FROM “groups” WHERE “groups”.“id” = ? LIMIT 1 [[“id”, 7]]
Group id: 7, name: “IIIC”, teacher_id: 16, pupil_id: 8, created_at: “2014-05-18 16:51:09”, updated_at: “2014-05-30 12:05:33”
Lecz nie aktualizuje mi się karta ucznia oraz lista osób w klasie. Wyczytałem również że może być to problem związany z nested_attributes lecz tak czy siak nie rozwiązuje to mojego problemu. Tak jak pisałem wcześniej jestem jeszcze trochę zielony więc czekam na wasze opinie i pomoc . Z góry wielkie dzięki!
Ps. Warto jeszcze dodać że kiedy aktualizuję pole ucznia w konsoli to wszystko działa tak jak powinno - czyli dodaje ucznia do klasy i aktualizuje listę osób w danej klasie.
2.0.0-p247 :004 > p = Pupil.find(8)
Pupil Load (0.6ms) SELECT “pupils”.* FROM “pupils” WHERE “pupils”.“id” = ? LIMIT 1 [[“id”, 8]]
=> Pupil id: 8, email: “barbara@streisand.pl”, encrypted_password: “$2a$10$jYRe29XCYVWqO5jc2.AYh.Vqzbod1tJrIRy2G8J3X9tY…”, reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 1, current_sign_in_at: “2014-05-18 16:35:44”, last_sign_in_at: “2014-05-18 16:35:44”, current_sign_in_ip: “127.0.0.1”, last_sign_in_ip: “127.0.0.1”, created_at: “2014-05-18 16:35:44”, updated_at: “2014-05-18 17:03:43”, name: “Barbara”, surname: “Streisand”, rate_id: nil, note_id: nil, contact: “LA 21/5”, group_id: nil
2.0.0-p247 :005 > p.group_id = 13
=> 13
2.0.0-p247 :006 > p.save
(0.3ms) begin transaction
SQL (13.0ms) UPDATE “pupils” SET “group_id” = ?, “updated_at” = ? WHERE “pupils”.“id” = 8 [[“group_id”, 13], [“updated_at”, Fri, 30 May 2014 12:27:49 UTC +00:00]]
(222.5ms) commit transaction
=> true