HTML脚本评估

时间:2012-11-04 16:18:35

标签: html ruby-on-rails

免责声明:我对网络开发一般都很陌生,所以如果这是一个可怕的问题,我很抱歉。

为什么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对象,但是不可能只假设每行(或其他一些语法 - 实际上可能使用分号)是要评估的新剧本?

我想我问的是为什么代码块会以这种方式进行评估,为什么不能提高效率呢?

1 个答案:

答案 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...