0

我的#new 表单中有代码:

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

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

4

3 回答 3

1

对于在视图中打印,它使用:

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

并且代码在没有=. 像这样:

<% if false%>
<%= 'This will NOT be printed' %>
<% else %>
<%= 'This will be printed' %>
<%end%>
于 2013-10-18T07:59:27.580 回答
0

<%= some_code %>打印任何计算的结果。因此,几个 <%= %> 事情会导致在视图中插入几个不同的结果。

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

<%= 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。

于 2013-10-18T10:47:58.280 回答
0

在分隔符 '<%=' 和 '%>' 之间写入的代码总是用于在输出屏幕上打印

因此任何写成:

<%= is a printable/output text %>

像这样写的任何东西:

<% if a == b %>

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

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

于 2013-10-18T08:18:56.537 回答