0

我有一些代码存储在一个字符串中,我想在特定记录的上下文中运行它。

我想做这样的事情:

class Dog < ActiveRecord::Base
  # has the attributes name and age
end

a_dog = Dog.first

some_code = "puts name"

eval some_code, a_dog.get_binding

这将打印第一只狗的名字。我知道get_binding方法不对,但我认为这个名字说明了我想要做什么。

另外,我知道我不应该这样做,我只想知道是否有办法:)

4

1 回答 1

3

您可以使用instance_eval方法在接收器的上下文中评估代码字符串。

a_dog = Dog.first
a_dog.instance_eval('puts name')
snuppy
 => nil
于 2012-05-15T14:13:45.397 回答