tam średnio,… całkiem nie wiadomo o co chodzi ^^ … wszystko zalezy od tego co masz na mysli piszac polaczyc oba obiekty ?? Jedyne co przychodzi mi do glowy to ze chcesz osiagnac dodanie ich roznych atrybutow. Jesli tak:
Musisz przeciazyc operator dodawania w klasie User zeby nadawal wartosci sumy odpowiednich argumentow obu klas, najprosciej przez zsumowanie atrybutow ktore chcesz zsumowac z tablicy haszy attributes. A czego sumowac nie chcesz niech wstawia z self … Choc szczerze powiedziawszy ciekawi mnie co ty masz tu na mysli XD
hmm, gdy pisałem tamtego posta, wydawało mi się, że będzie wiadomo o co chodzi
Ale tak, chodzi o to, że dwa obiekty mają różne atrybuty. Chciałbym otrzymać trzeci obiekt, mający wszystkie atrybuty pierwszego + “nowe” (te, które nie istnieją w pierwszym) atrybuty drugiego.
Jak to zrobić żeby było wykonywane tylko dla atrybutów, których nie ma w @user – to ćwiczenie dla czytelnika Dodam dla ułatwienia, że można to zrobić w jednej linijce z blokiem
[quote=krzyzak]Witajcie
mam pytanie- w jaki sposób połączyć 2 obiekty?
chciałbym otrzymać w wyniku:
@current_user = @user + @student
[/quote]
Są dwa mechanizmy, których możesz użyć.
Delegacja:
User.has_one :student # ew. lepsze określenie związanego entity wraz z polymorphic => true
User.delegates :name, :surname, :address, :to => :student
Drugie rozwiązanie to composed_of:
Student.composed_of :user # tu musisz się wspomóc dokumentacją
O rozwiązaniu z composed_of wiem, że istnieje. W naszych projektach delegacja wystarczała.