我有一些代码存储在字符串中,我想在特定记录的上下文中运行它。
我想做这样的事情:
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
方法不对,但我认为这个名字展示了我想要做的事情。
另外,我知道我不应该这样做,我只是想知道我是否有办法:)
答案 0 :(得分:3)
您可以使用instance_eval方法来评估接收方上下文中的代码字符串。
a_dog = Dog.first
a_dog.instance_eval('puts name')
snuppy
=> nil