Some part of class in ActiveRecord

Hello !

I’ve a question regarding Rails and Active Record.

I’ve a class, for instance “Host” witch is populated with data from a remote API. I call a specific address and create my object. My object has a specific and unique ID.

I would like to add additional data to this object. This data would be stored in my MySQL database. I want to only store this additional data in my database and do the link with my ID.

My idea for a Rails POV is to add an extra parameter in my “Host” class with something like “host_extra” whitch is an ActiveRecord::Base class with my extra data and in my constructor in my Host class I do a HostExtra.find(id).

What do you think of my solution? A better solution exists to do something like that?

Thanks!

Regards,

You could certainly have a one to one association between this host class and some other table, although it’s not clear to me why you wouldn’t just store it in the hosts table (not to say that there can’t be a good reason for this, you just haven’t said why you want to do this).

Fred

Hello!

Thanks for the update. The problem is that I don’t have a “Host” table. All informations regarding the host are from my external API. I just want to “extend” those information with dedicated data.

Hello!

Thanks for the update. The problem is that I don't have a "Host" table. All informations regarding the host are from my external API. I just want to "extend" those information with dedicated data.

Maybe the answer is to cache the API output in a hosts table locally (and add your extra bits at the same time), and then do either a scheduled refresh or make a request against the API on each "show" for a particular host? Then you could update the local cache if there are changes, and everything (local and API data) would stay in synch.

Walter

In that case why not (although as Walter says you might consider persisting the API data, although keeping that up to date might be a can of worms you don’t want to open).

Fred