我可以将所有表单代码放在一个< %%>中块?

时间:2013-10-18 07:26:10

标签: ruby-on-rails

我的#new表格中有代码:

<%= form_for @phone do |p| %>
  <%= p.label :name %>
  <%= p.text_field :name %>
  <%= p.label :photo %>
  <%= p.text_field :photo %>
  <%= p.submit %>
<% end %>

我可以把它放在一个代码块中,怎么做?

3 个答案:

答案 0 :(得分:1)

要在视图中打印,请使用:

 <%= 'This will be printed in the view' %> 

并且代码在没有=的情况下使用。像这样:

<% if false%>
<%= 'This will NOT be printed' %>
<% else %>
<%= 'This will be printed' %>
<%end%>

答案 1 :(得分:0)

在分隔符'&lt;%='和'%&gt;'之间写入的代码alwayz用于在输出屏幕上打印

因此写得像:

  

<%= is a printable/output text %>

任何类似的内容:

  

<% if a == b %>

只是逻辑的一部分,永远不会打印

并回答你,你不能混合和匹配它们。

答案 2 :(得分:0)

<%= some_code %>打印到任何计算的查看结果中。所以,几个&lt;%=%&gt;事情导致在视图中插入几个不同的结果。

如果您只想使用一个代码块,则应使用连接:

<%= form_for @phone do |p| %>
<%=
  p.label(:name) +\
  p.text_field(:name) +\
  p.label(:photo) +\
  p.text_field(:photo) +\
  p.submit 
%>

也许它会导致html在视图中逃逸(抱歉,我没有检查)。无论如何,它看起来很丑陋。如果您想简化视图,我建议您使用HAML(http://haml.info/)而不是ERB。