Как установить динамический атрибут - PullRequest
7 голосов
/ 30 марта 2012

Есть ли способ установить col как динамический или каким-то образом преобразовать его в действительный атрибут? В настоящее время выдает ошибку: неопределенный метод `col = 'для # ...

def copy_stock_data_from_sandbox(cntrlr)
  source_table = cntrlr.singularize.classify.constantize
  dest_table = source_table.new
  source_table.column_names.each do |col|
    dest_table.col = xyz    # <------ This is the line in question
  end
  dest_table.save
end

Кроме того, не уверен, что заголовок является точным, пожалуйста, предложите, если «динамический атрибут» является неправильным термином для этой ситуации. Спасибо

Ответы [ 2 ]

13 голосов
/ 30 марта 2012

Я считаю, что вы ищете следующее:

dest_table.send(:"#{col}=", xyz)
11 голосов
/ 30 марта 2012

Вы можете попробовать

dest_table.write_attribute(col, xyz)

OR

dest_table[col] = xyz

OR

dest_table.send("#{col}=", xyz)
...