如何实现<%= form_tag ... do%>?

Eri*_*ric 4 ruby-on-rails erb

我试图找出如何在<%= ...%>发射器中预示Ruby块.

'<%form_tag do%>'部分没问题,但是当我深入研究Rails内部并看到它如何使用erb来处理模板时,由于挂起'do',生成的Ruby代码无效.是否有一个后处理器隐藏在某个地方的Rails中,在运行代码之前将其拉直?如果是的话,它在哪里?如果不是,Rails如何从这种形式中提取HTML和Ruby代码?

fgp*_*fgp 6

Rails添加了一个hack,它使用正则表达式来确定传递给erb的内容是否是块表达式然后以不同方式处理它.

有关更详细的说明:http://timelessrepo.com/block-helpers-in-rails3