免责声明:我对网络开发一般都很陌生,所以如果这是一个可怕的问题,我很抱歉。
为什么HTML中的所有内容都是逐行评估的?我注意到,我投入HTML的任何代码(脚本?)都要求我在每一行上将它转换为语言,如下所示:
<div class = "row">
<div class = "span6 offset3">
<%= form_for(@user) do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.label :email %>
<%= f.text_field :email %>
<%= f.label :password %>
<%= f.text_field :password %>
<%= f.label :password_confirmation, "Confirmation" %>
<%= f.text_field :password_confirmation %>
<%= f.submit "Create My Account", :class => "btn btn-large btn-primary" %>
<% end %>
</div>
</div>
但为什么不能像这样评估脚本:
<div class = "row">
<div class = "span6 offset3">
<%= form_for(@user) do |f|
f.label :name
f.text_field :name
f.label :email
f.text_field :email
f.label :password
f.text_field :password
f.label :password_confirmation, "Confirmation"
f.text_field :password_confirmation
f.submit "Create My Account", :class => "btn btn-large btn-primary"
end %>
</div>
</div>
不允许开发这么简单吗?对我来说,这只是更有意义,但它没有这样做,可能是有充分理由的。如果我写出了相当多的代码(在这种情况下是Ruby),我并不是在开始和结束时抛出每一行的忠实粉丝。
我得到的是我让HTML通过强制转换将每行评估为HTML对象,但是不可能只假设每行(或其他一些语法 - 实际上可能使用分号)是要评估的新剧本?
我想我问的是为什么代码块会以这种方式进行评估,为什么不能提高效率呢?
答案 0 :(得分:-1)
您可以,但您必须执行<%= %>
标记所做的所有事情。
我不确定Ruby中的语法,但基本上是这样的标签:
<%= f.label :name %>
输出到页面,即:
的快捷方式<% response.write(f.label :name) %>
因此,如果添加执行输出的命令,则可以在单个脚本标记内执行此操作:
<%= form_for(@user) do |f|
response.write(f.label :name)
response.write(f.text_field :name)
et.c...