8

colを動的に設定する方法や、何らかの方法で有効な属性に変換する方法はありますか? 現在、エラーがスローされています: undefined method `col=' for #...

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

また、タイトルが正確かどうかわからない場合は、「動的属性」がこの状況の用語として間違っているかどうかを提案してください。ありがとう

4

2 に答える 2

15

私はあなたが以下を探していると信じています:

dest_table.send(:"#{col}=", xyz)
于 2012-03-30T00:34:39.440 に答える
12

あなたが試すことができます

dest_table.write_attribute(col, xyz)

また

dest_table[col] = xyz

また

dest_table.send("#{col}=", xyz)
于 2012-03-30T00:39:32.267 に答える