2013-10-26 8 views
1

Может кто-нибудь сказать мне, в чем разница между тегами <%= %> и <% %> в erb? В каком случае я должен использовать какой? Какие еще теги я могу использовать и каково их значение?Разница между <% и <% =

ответ

6

Как сказал

<% %> 

примет код рубиновый внутри и оценить его

<%= %> 

примет код рубиновый внутри и оценить его и распечатать результат на экране, который обычно означает волю возвращает результат для печати, который может использоваться в html как обычный текст

<div class="<% 'myclass' %>"> 

приведет к

<div class=""> 

и <div class="<%= 'myclass' %>"> приведет

<div class="myclass"> 

вы можете увидеть это railscast, который объясняет его дальше http://railscasts.com/episodes/100-5-view-tips

Кроме того, вы, вероятно, столкнуться с этим в будущем и даже забыть, что я написал это, но может быть полезно так или иначе

В некоторых случаях не каждая строка кода рубина должна быть строкой <%%>. , например - с помощью случай переключения

это не будет работать:

<% case my_var %> 
<% when 10 %> 
<% some ruby code %> 
<% end %> 

но это

<% case my_var 
    when 10 %> 
<% some ruby code %> 
<% end %> 

так что будьте осторожны, что

+2

Очень хороший ответ! –

1

<%= %> используется, когда вы хотите, чтобы ваш казнены рубин, который будет выводиться на экран, это означает, что все, что написано в этом блоке печатается в выходном экране,

где, как <% %> блок используется для выполнения вашей рубин логической части, например, для вашего if состояния, loop заявления и т.п. ..

1
<% %> 

Выполняет код рубинового внутри скобок.

<%= %> 

Печатает что-то в файле erb.

+0

Оба выполнения кода рубиновый. –

Смежные вопросы