ruby erb中的<%%>(不等于)意味着什么?

wiz*_*tjh 6 ruby-on-rails

我发现这个"没有替换回输出执行",但也许我的英语不太好,我真的不明白这意味着什么.任何人都可以帮忙吗?

Mic*_*Six 11

<%%>

将执行Ruby代码而不会影响正在呈现的html页面.输出将被丢弃.

<%=%>

将执行Ruby代码并插入该代码的输出来代替<%=%>

例...

<% puts "almost" %> nothing to see here 
Run Code Online (Sandbox Code Playgroud)

会呈现为

nothing to see here
Run Code Online (Sandbox Code Playgroud)

然而

<%= puts "almost" %> nothing to see here
Run Code Online (Sandbox Code Playgroud)

会呈现为

almost nothing to see here
Run Code Online (Sandbox Code Playgroud)


Pet*_*ong 7

有时你必须(或者你想)执行一些ruby语句,但不是为了输出目的.

如下:

<% if @user.nil? %>
  Hi, welcome!
<% else %>
  Hi, <%= @user.name %>!
<% end %>
Run Code Online (Sandbox Code Playgroud)

当然这只是一个用例,但有时你确实需要<% %>:D