Adding record with has_many relationship .with dynamic column_name

I know that we can add records like

record.posts << Post.find(1);

but how can add the same Post.find(1) record if I have a variable that contains the name “posts”

I have something like this

column_name = “posts”

record[column_name] << Post.find(1);

it is throwing an error

NoMethodError (undefined method `<<’ for nil:NilClass):

The ruby method send can be used to call a method by name, so for
normal methods one would do
record.send(column_name) << Post.find(1)
I think that aught to work for an ActiveRecord relation but never tried it.
However when I see code like that it often meens that there is some
smelly code about. Are you sure you really want to do what you are
attempting? There may well be a better way.

Colin

I am new to ruby on rails . I am trying to upload the data to any model , through file. so they specify the model name , and the data which needs to be dumped in to database . i am parsing each line of the file and trying to add the records . I am facing problem adding the has_many relations columns,

I am getting the column_names through model name. and data from the file. I need to add a record to database.

I will be helpful if you can suggest any better ways of doing this.

Thanks

kranthi

I am new to ruby on rails . I am trying to upload the data to any model ,
through file. so they specify the model name , and the data which needs to
be dumped in to database . i am parsing each line of the file and trying to
add the records . I am facing problem adding the has_many relations columns,

I am getting the column_names through model name. and data from the file. I
need to add a record to database.

I will be helpful if you can suggest any better ways of doing this.

OK, that is the sort of situation where it is reasonable to use that approach.

Did it work with send?

Colin