通过包含字段名称的字符串变量引用模型字段?

时间:2012-05-31 12:36:59

标签: ruby-on-rails

我无法弄清楚如何在Google搜索中说出这一点 - 请原谅。如果我有一个类似的模型:

c = Color.all

我可以说:

c.Color[0].color_name

因此,如果我有一个包含该模型中字段名称的变量,如:

b = 'color_name'

我怎么能这样说(“c.color_name”)使用带有字段名称的字符串:

c[0].b  

或者,我的意思是告诉Ruby / Rails使用vaiable的内容作为字段名称:

c[0].[the string value of b]

我无所事事地尝试了我能想到的一切,但是我无法理解这个语法。

谢谢!

Rails 2.3.5 / Ruby 1.8.7

2 个答案:

答案 0 :(得分:5)

如果bColor的实例变量或方法,请使用Object

中的send方法
c = Color.all
b = 'color_name'
c[0].send(b.to_sym)

答案 1 :(得分:0)

我从未使用此版本的rails,但object['nameoffield']object.read_attribute('nameoffield')可能会有效。