0

免责声明:总的来说,我对 Web 开发还是很陌生,所以如果这是一个可怕的问题,我很抱歉。

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

我想我要问的是为什么要以这种方式评估代码块,为什么没有提高效率?

4

1 回答 1

-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...
于 2012-11-04T16:24:25.000 回答