Re: Creating a second instance of a singleton class?

I love this group b/c there are so many clever people here. Ara -
you’re definitely getting me close.

I’ll open the bag a little at the expense of brevity so you can see
what I’m trying to accomplish. I’m using Rails v1.2.2, and in
particular ActiveRecord 1.15.2.

In the course of a data operation, I have a series of active record
instances:

instance1ofclass1, instance2ofclass1, instance1ofclass2,
instance2ofclass2, etc…]

For any given activerecord class for the above list (let’s use an
example table called “property”) there is an identical table (less the
primary key) called “property_versions”

I would like to be able to create a new instance of the activerecord
model but using a new table name - changing the table_name is handled
as a class method “set_table_name(new_name)”

So I could say:

#==> assumes we have a “property” instance available…
orig_table = Property.table_name
class Property
set_table_name ‘property_versions’
end

prop_versions = Property.new(property.attributes)

class Property
set_table_name orig_table
end

But this doesn’t seem threadsafe - I could block the whole operation
but (at the time) it seemed cleaner and simpler to just modify the
instance of the class rather than the whole parent class.

I may just be an idiot and there’s a way easier way to handle this. But
this was supposed to be a quick little function. Isn’t working out like
that though. :slight_smile:

Thanks again for any insight,

Steve

On Thu, 15 Feb 2007, Steve M. wrote:

instance1ofclass1, instance2ofclass1, instance1ofclass2, instance2ofclass2,
So I could say:
set_table_name orig_table
end

you lost me. why wouldn’t you just do

property_versions_class = Class.new(Property){ set_table_name
‘property_versions’ }

prop_versions = property_versions_class.new(property.attributes)

??

and that’s assuming it had to be dynamic. for that matter why not

./script/generate model PropertyVersion

and

prop_versions = PropertyVersion.new(property.attributes)

??

-a

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs