如何在ruby中评估多行代码?

mlz*_*boy 2 ruby

eval('puts "ff"\nputs "ff"')
Run Code Online (Sandbox Code Playgroud)

我尝试在一个eval中使用两个表达式但它不执行?

我该怎么做呢?我想知道因为我想动态执行部分代码.

And*_*imm 5

eval("puts 'ff'\nputs 'ff'")
Run Code Online (Sandbox Code Playgroud)

也有效.'\n'被视为字面意思是斜杠和n,因为单引号的工作方式不同于双引号.


bal*_*alu 5

使用heredoc语法.传递文件和行号以在后向跟踪中提供参考信息.

eval(<<-CODE, __FILE__, __LINE__ +1 )
  some(:ruby);
  code
  # and comments
CODE
Run Code Online (Sandbox Code Playgroud)