Potrzebuję utworzyć klasę Ruby w locie, tj. Dynamicznie, która pochodzi z ActiveRecord::Base
. Używam eval
na razie:Tworzenie klasy Ruby w locie bez ewaluacji
eval %Q{
class ::#{klass} < ActiveRecord::Base
self.table_name = "#{table_name}"
end
}
Czy istnieje odpowiednik, a przynajmniej równie zwięzły sposób to zrobić bez użycia eval
?
To wszystko, dziękuję. Wiem, że klasy też są obiektami; ale nie wiedziałem, że można podać klasę podstawową jako argument, aw szczególności o bloku (z perspektywy czasu, powinienem był się domyślić). – DrTom