Ruby on rails 3 是否有方法使用符号访问活动记录属性?

Ruby on rails 3 是否有方法使用符号访问活动记录属性?,ruby-on-rails-3,activerecord,Ruby On Rails 3,Activerecord,我有一个ActiveRecord类,我们称之为comments,它有一个author属性 在我的代码中,有一次我将comments和symbol:author的实例传递给了helper方法。我现在发现自己想要访问author属性,并且想知道是否有一种方法可以利用我所拥有的来实现这一点 我可以使用comment.read\u属性:author但我不能使用comment.write\u属性:author,因为它是一个私有方法 我想我遗漏了一些很明显的东西。有什么想法吗?你可以使用instance\u

我有一个ActiveRecord类,我们称之为comments,它有一个author属性

在我的代码中,有一次我将comments和symbol:author的实例传递给了helper方法。我现在发现自己想要访问author属性,并且想知道是否有一种方法可以利用我所拥有的来实现这一点

我可以使用comment.read\u属性:author但我不能使用comment.write\u属性:author,因为它是一个私有方法


我想我遗漏了一些很明显的东西。有什么想法吗?

你可以使用
instance\u eval

irb(main):006:0> class MyClass
irb(main):007:1> attr_accesor :length
irb(main):008:1> end
irb(main):012:0> c = MyClass.new
=> #<MyClass:0x27d6458>
irb(main):016:0> b = 11
=> 11
irb(main):019:0> c.instance_eval( "self.length = #{b}" )
=> 11
irb(main):020:0> c.length
=> 11
irb(main):019:0> c.instance_eval( "self.length" )
=> 11

我想我不太明白你的问题。
comment.author
会帮助您吗?但我希望能够将任何符号(例如:date、:text)传递给helper方法并访问该属性。我想我可以使用eval(“comment.”+attr.to_s),但这似乎很弱。
send
不在乎该方法是公共的还是私有的,所以请小心使用
irb(main):021:0> c.send :length
=> 11