0

这是我的伪代码示例:

Mydb.find_by_sql("...").each do |data|
.
.
aFile.print(data.time.to_f, " ", data.column_name, "\n")

我的问题是如何为 column_name 使用变量?我想是这样的:

aFile.print(data.time.to_f, " ", data.#{column_name}, "\n")

或者

aFile.print(data.time.to_f, " ", data.'#{column_name}', "\n")

或者

aFile.print(data.time.to_f, " ", data."#{column_name}", "\n")

但这些没有用。

有任何想法吗?

4

1 回答 1

2

你可以试试

data.send('column_name')

所以如果返回的 ActiveRecord 有一个属性 'foo'

puts(data.foo)

是相同的

puts(data.send('foo'))

更新您的评论。

@x = X.find(1)
['date','age','sex'].each do |attr|
  puts "The value of #{attr} is #{@x.send(attr)}"
end
于 2012-08-27T21:55:40.303 回答