iam*_*toc 7 ruby ruby-on-rails dynamic-attributes
有没有办法将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
Run Code Online (Sandbox Code Playgroud)
此外,不确定标题是否准确,请建议"动态属性"是否适用于这种情况.谢谢
Rob*_*bin 13
我相信你正在寻找以下内容:
dest_table.send(:"#{col}=", xyz)
Run Code Online (Sandbox Code Playgroud)
Har*_*tty 11
你可以试试
dest_table.write_attribute(col, xyz)
Run Code Online (Sandbox Code Playgroud)
要么
dest_table[col] = xyz
Run Code Online (Sandbox Code Playgroud)
要么
dest_table.send("#{col}=", xyz)
Run Code Online (Sandbox Code Playgroud)