我有一个ActiveRecord类 - 让我们称之为注释 - 它具有作者属性。
在我的代码中,我已经将一个注释实例和符号:author传递给了一个帮助方法。我现在发现自己想要访问作者属性,并想知道是否有办法用我所拥有的这样做。
我可以使用comment.read_attribute :author
但我不能使用comment.write_attribute:author,因为它是私有方法。
我怀疑我错过了一些非常明显的东西。有什么想法吗?
答案 0 :(得分:1)
您可以使用instance_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
或
irb(main):021:0> c.send :length
=> 11