2012-06-04 3 views
-2

Возможно ли, что код exec ruby, который находится в переменной экземпляра в контроллере?Rails это возможно?

Пример:

def something 
@code = "redirect_to 'https://www.google.com/'" 
exec(@code) // And then it would redirect. 
end 
+1

Не могли бы вы рассказать о том, чего вы пытаетесь достичь? Там может быть лучший способ решить вашу проблему. –

+2

Определенно соглашаюсь с Коди здесь. Если вы когда-нибудь захотите запустить Ruby-код, скорее всего, вы делаете это неправильно. –

+1

http://www.ruby-doc.org/core-1.9.3/Kernel.html#method-i-eval Да, это возможно. Я не уверен, что это хорошая идея, хотя ... – Travis

ответ

1

НЕ это сделать. Rails IS Ruby. В Ruby вы можете выполнить любую команду внутри строки, используя метод eval. И когда вы начинаете вникать в нее, есть class_eval.

@myvar = "puts 'SHOULD NOT HAVE DONE THIS!!'" 

eval(@myvar) # SHOULD NOT HAVE DONE THIS!! 

Хранить втрое.

Смежные вопросы