【问题标题】:Difference between :class and :id , under what circumstances would we generally use <%= %> and <% %> in Rails:class 和 :id 的区别,在 Rails 中我们一般在什么情况下使用 <%= %> 和 <% %>
【发布时间】:2011-06-05 18:12:47
【问题描述】:

当我们多次使用诸如 form_form、form_tag 之类的 Rails 助手时,尤其是当我们需要使用 Javascript 时,我们会使用这些助手附带的 :html 选项,我们会给出:id =&gt; "some_value" and :class =&gt; "some_value"。我只是想从可用性的角度了解“id”和“class”的区别。这将帮助我更好地决定何时需要使用其中任何一个选项以及何时必须同时使用这两个选项。

还有,

我只是想确切了解我们在什么情况下使用&lt;%= %&gt;,以及何时使用&lt;% %&gt; wrt Rails。到目前为止,我已经看到它们在各种情况下的使用。

如果你能用相关的例子回答这些问题,那就太好了,

非常感谢您的宝贵时间...

【问题讨论】:

    标签: ruby-on-rails class tags


    【解决方案1】:

    您的“class”与“id”问题实际上是指 CSS 最佳实践。以下是一些相关信息:http://css-tricks.com/the-difference-between-id-and-class/

    &lt;%= %&gt;ERB标签输出标签中表达式的结果,例如...

    <%= ['hello', 'world'].join(' ') %>
    

    将替换为字符串“hello world”

    假设您想设置一个变量以供以后使用,因为您还不想输出结果,因此您将使用&lt;% %&gt; 标签。例如:

    <% my_var = "test" %>
    

    这不会输出任何内容,但会设置 my_var 变量以供以后使用。如果你误用了&lt;%=...

    <%= my_var = "test" %>
    

    该标签将在生成的呈现页面中替换为“test”,这可能不是您在这种情况下想要做的。 &lt;% %&gt; 标签的另一个常见用途是循环。

    <% ['item1','item2','item3'].each do |item| %>
      <li><%= item %></li>
    <% end %>
    

    这会导致:

    <li>item1</li>
    <li>item2</li>
    <li>item3</li>
    

    我希望这有助于解决您的一些问题!

    【讨论】:

    • 感谢您的回答.. 我只是想问一下 &lt;%= %&gt; and the ` 标签是由 Rails 中的任何名称创造的吗?..
    【解决方案2】:

    Rails 中的另一件事是,在 3.0 版本之后,form_for 等助手使用&lt;%= %&gt;,因为它会在后台为您添加标签。 (所以由于.each 只打印块中的文本/代码,它不需要=

    所以&lt;%= %&gt; 评估中间的代码,然后将结果打印到您的页面,&lt;% %&gt; 只运行代码。

    如果您确实需要在&lt;% %&gt; 中打印某些内容,请使用#concat

    【讨论】:

      猜你喜欢
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-29
      • 1970-01-01
      • 2022-01-03
      • 2011-02-25
      • 1970-01-01
      相关资源
      最近更新 更多