我试图找出如何在<%= ...%>发射器中预示Ruby块.
'<%form_tag do%>'部分没问题,但是当我深入研究Rails内部并看到它如何使用erb来处理模板时,由于挂起'do',生成的Ruby代码无效.是否有一个后处理器隐藏在某个地方的Rails中,在运行代码之前将其拉直?如果是的话,它在哪里?如果不是,Rails如何从这种形式中提取HTML和Ruby代码?
Rails添加了一个hack,它使用正则表达式来确定传递给erb的内容是否是块表达式然后以不同方式处理它.
有关更详细的说明:http://timelessrepo.com/block-helpers-in-rails3