当编写打印的JavaScript,可以从两个其他帮助,并享有使用一个帮手,我偶然发现了以下问题:神秘红宝石座行为:块与{} block.call
def javascript(print_tag = false, &block)
content_for(:javascript) do
if print_tag
javascript_tag(&block) # does not work
javascript_tag { block.call } # does work
else
capture(&block)
end
end
end
这个助手应该用javascript { "alert('hurray'); }
来调用。
在第一个替代方案 - 我预计工作 - Rails javascript_tag helper呈现一个空的<script type="text/javascript"> //<![CDATA[ //]]> </script>
标记。
但是,第二种方法按预期工作。
这是怎么回事?这怎么可能有所不同?
那......多么棘手的实现!实际上我使用的是Haml:' - javascript(true){fire_flash} if flash_message.present?',我不想在1行中写入4行。但是,非常感谢! – crispy 2010-12-20 15:57:04