在Rails教程和视频中,它似乎与常规ruby完全不同。例如,我看到<%render%>
或<%end%>
。我何时应该使用<%%>
以及它的用途是什么?
答案 0 :(得分:3)
<% code %>
用于erb
,代表“嵌入式Ruby”。它通常用于HTML生成模板。它的兄弟是<%= code %>
,它输出其中表达式的返回值。
<h1>Hello, <%= @user.name %>!</h1>
# potentially renders: <h1>Hello, Bob</h1>
# potentially renders: <h1>Hello, Sue</h1>
此标记的非输出<% code %>
版本对于执行代码非常有用,但不能向模板写入任何内容。这对条件(以及其他东西)很有用。
<h1>
Hello
<% if @user.sex == 'male' %>
Mister
<% else %>
Miss
<% end %>
<%= @user.name %>!
</h1>
# potentially renders: <h1>Hello Mister Bob!</h1>
# potentially renders: <h1>Hello Miss Sue!</h1>
在纯ruby中,这将是语法错误。但是在erb
模板中,这些标记允许您通过执行ruby来控制模板流以及通过写出ruby表达式的结果来控制模板的呈现方式。
Rails默认使用erb
作为视图,这些视图主要是html生成模板。所以你在Rails示例中看到了很多。请记住,erb
只是Rails中模板的一个选项。 There is a great many options, which may use different syntax entirely.
答案 1 :(得分:0)
在HTML代码中用于在标记内显示ruby代码。
<%= render 'folder/partial_form' %>
这会使表格部分显示。
我建议你仔细阅读下面的链接:
http://www.guides.rubyonrails.org
http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials
答案 2 :(得分:0)
<%= %>
和<% %>
语法用于在.erb文件中编写ruby。将ERB视为一个始终允许运行ruby代码的html文件。 <% %>
语法运行ruby但默认情况下不执行任何操作,而<%= %>
语法(注意=)将ruby代码的结果输出到屏幕。