<%form ..和<%= form之间的差异

时间:2011-04-04 08:40:06

标签: ruby-on-rails

我使用的是rails 1.2.1版本。通常,我在所有项目中都使用表单标记作为以下样式。

<% form_tag({:action => 'xxx'} etc...) do %> 
..
<% end %>

但是,当我看到以下教程网站http://guides.rubyonrails.org/form_helpers.html时,他们引导了表单标记,如下所示。


<%= form_tag(search_path, :method => "get") do %> 
..
<% end %>

所以,我只是尝试使用它。但是,它显示了错误。为什么他们在表单标签中使用符号“=”?错误的原因是什么?。

标记的目的是什么,使用相等和标记不相等。 (&lt;%= ...和&lt;%...)

2 个答案:

答案 0 :(得分:6)

erb标记<%= expr %>在结果HTML中嵌入expr的值,而<% expr %>仅仅评估expr的副作用。

自Rails 3以来form_tag的语义已经发生了变化。您将希望继续使用<% form_tag %>用于3.0之前版本的rails。

答案 1 :(得分:2)

如果你想在浏览器端渲染一些内容,那么你必须使用'&lt;%='否则'&lt;%' 如果您使用&lt;%= form_tag,那么它会将html表单呈现给浏览器。