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 に答える