当我们使用rails帮助程序(如form_form,form_tag)时,尤其是当我们需要使用Javascript选项时,我们提供:id => "some_value" and :class => "some_value"
这些帮助程序时使用的Javascript选项。我只想了解“id”和“class”与可用性角度的区别。这将有助于我更好地决定何时需要使用这些选项中的任何一个以及何时必须同时使用这两个选项。
此外,
我只是想知道我们在什么情况下使用<%= %>
以及何时使用<% %>
wrt Rails。到目前为止,我已经看到它们在各种情况下的使用。
如果你能用相关的例如
来回答这些问题,那就太好了非常感谢您的时间......
答案 0 :(得分:5)
你的'class'vs'id'问题实际上是指CSS最佳做法。以下是一些信息:http://css-tricks.com/the-difference-between-id-and-class/
<%= %>
ERB标记输出标记中表达式的结果,例如......
<%= ['hello', 'world'].join(' ') %>
将替换为字符串“hello world”
假设您想设置一个变量供以后使用,因为您不想输出结果,因此您将使用<% %>
标记。例如:
<% my_var = "test" %>
这不输出任何内容,但会设置my_var
变量供以后使用。如果你错误地使用了<%=
......
<%= my_var = "test" %>
在生成的呈现页面中,该标记将替换为“test”,在这种情况下,这可能不是您想要做的。 <% %>
标签的另一个常见用途是循环。
<% ['item1','item2','item3'].each do |item| %>
<li><%= item %></li>
<% end %>
哪会导致:
<li>item1</li>
<li>item2</li>
<li>item3</li>
我希望这有助于澄清你的一些问题!
答案 1 :(得分:1)
Rails中的另一件事是3.0版之后的助手form_for
等使用<%= %>
,因为它会在后台为你添加标签。 (因为.each
只打印块中的文本/代码,所以不需要=
)
因此<%= %>
评估其间的代码,然后将结果打印到您的页面,<% %>
只运行代码。
如果您确实需要在<% %>
内打印某些内容,请使用#concat