2012-05-15 55 views
0

我有一些代碼存儲在一個字符串中,我想在特定記錄的上下文中運行它。如何從ActiveRecord記錄返回綁定?

我想要做這樣的事情:

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方法是不正確的,但我認爲這個名字表明我想要做什麼。

另外,我知道我不應該做到這一點,我只是想知道是否有一種方法可以讓我:)

回答

3

您可以使用instance_eval方法,評估接收器的上下文中的代碼串。

a_dog = Dog.first 
a_dog.instance_eval('puts name') 
snuppy 
=> nil 
+0

很酷。我知道會有一個簡單的方法來做到這一點。謝謝。雖然我永遠不會叫我的狗「Snuppy」。 –

+0

雖然現在我看起來Snuppy了,這是一個很酷的參考,我可能會! –

+0

僅適用於蝙蝠俠頭像+1。 – MrDanA

相關問題