Automatyczne dodawanie rekordu

Witam.

Mam modele: Member, Class i Assign

member habtm class throught aassign
class habtm member throught aassign

W Class mam “1 => klasa A”, 2 => klasa B" i 100 => “Klasa X”
Memeber ma należeć zawsze do Klasy X.

Jak powinien wyglądać wpis w modelu Member aby zawsze podczas tworzenia Członka był on dodawany automatycznie do Klasy X, czyli pojawiał się wpis w Assign: member_a_id, 100 ?

Pozdrawiam

Sorry, że trochę nie na temat i nie odpowiadam na Twoje pytanie. Czy jak masz model Class to on nie koliduje Ci z klasą Class z std liba?

A co do pytania to może coś takiego:

[code]@member = # tworzysz, zapisujesz whatever
@class.assigns.create(:member_id => @member)

lub

@member = Member.new(params[:member].merge(:assigned_class => @class)
@member.save

i w after create dopisywać do “class” wskazanego w zmiennej instancji[/code]

Class to jest nazwa przykładowa na potrzebę posta.

Ja bym zrobił jak seban z tą różnicą, że nie mergowałbym tego niepotrzebnie do hasha.

[code]class Member
validates_presence_of :assigned_class, :on => :create
after_create :assign_to_class, :if => :assigned_class

def assign_to_class
assigns.create!(:class => assigned_class)
end
end

@member = Member.new(params[:member])
@member.assigned_class = @class
@member.save![/code]
P.S, Kiedyś w projekcie mieliśmy klasę Return i Ruby dawal radę. Nie bez problemów ale dawał :slight_smile: Nic nie stoi też na przeszkodzie by mieć metody :if, :unless oraz :def :slight_smile: