在rails erb
文件中嵌入ruby
代码,举个例子:
rails
输出的是:<div>1</div>
rails
实现是:ERB.new("<div><%= @a %></div>").result
查看erb.rb
源代码:
首先初始化ERB
,然后result方法里调用eval
,取变量的值相当于:eval("@a")
都是用eval("你的ruby代码")
,执行并返回
那么<%%>
呢?
erb.rb
中通过字符串匹配来识别ruby
代码,代码如下:
因为要解析erb
,erb中的代码传到ruby
中都是字符串,ERB
底层非常灵性的使用eval
解析字符串,运行ruby
代码
更多操作可以看ruby元编程