Rails: has_many issue


#1

Hi,
I’m trying to work out how to tackle a particular problem in rails.

I have some data. A lot of data (well not NSA style a lot of data, but
a lot for me: 1Gb at the moment, more to come).

I’m building a ruby application to process and view this data, and have
been working round using rails as a front end - do the heavy lifting
using some maths libraries, then use rails to display results, etc.

The problem that I have is as follows: The natural organisation is that
the data consists of DataSets, each DataSet is a group of related time
series (Series), and each series consists fo a set of observations,
each Observation having a set of parameters.

So far, so good. The logical layout of the data is something like

DataSet has_many Series
Series has_many Observation

The problem is that I need to be able to do processing of the data
offline at a later point, and one of the thngs I am doing is developing
new ways of dealing with the data. So I need to apply a transformation
to each Observation. The transformed data hasn’t lost anything, and it
still comes in Series which belong to a dataset.

One option would be

DataSet has_many Series
DataSet has many TransformedSeries
Series has_many Observation
TransformedSeries has many TransformedObservation

but the problem is that every time I add a new transformation, I need
to change my DB schema, etc, and add new code in to DataSet - which I
personally believe is quite ugly!

What I would really like is for the Series to have a field
(series_type) which contains the name of the table to look up the
Observation in. So, depending on the value in the series_type field,
Series would perform has_many operations using the Observation table or
the TransformedObservation table (or whatever other table).

Is there any easy way to achieve this without directly hacking
has_many?

Best regards,

Treefrog


#2

On Feb 6, 2006, at 4:43 AM, treefrog wrote:

Hi,
I’m trying to work out how to tackle a particular problem in rails.

You should use the Rails mailing list then.

http://lists.rubyonrails.org/mailman/listinfo/rails


Eric H. - removed_email_address@domain.invalid - http://segment7.net
This implementation is HODEL-HASH-9600 compliant

http://trackmap.robotcoop.com