2012-01-10 3 views
0

Я заметил, что все API-интерфейсы rails, похоже, используют одну из следующих двух обозначений для самородков кода в файлах erb;Зачем использовать <% Q в rails 3

<%Q ... %> 
<%= ... %> 

Но редко любое упоминание о ванили

<% %> 

, например, здесь;

http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html

Книга, которую я только что прочитал не покрывал <% Q обозначения, поэтому я предполагаю, что это ново. Есть ли какое-либо значение для «Q» или это просто лучшая практика теперь вместо того, чтобы просто использовать <%?

ответ

3

<% %> и <%= %> являются признаками ERB. <% %> используется для встраивания некоторого кода в шаблон, например. он будет использоваться для встраивания if ЗАЯВЛЕНИЯ

<% if @person.age > 18 %> 

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

Name: <%= @person.name %> 

%Q является особенностью языка Ruby, и это не Rails конкретных вещей. Как пишет johnernaut, он используется для строк с двумя кавычками. например вместо puts "Say \"Hello\"", где вам нужно, чтобы избежать двойных кавычек, вы можете написать puts %Q(Say "Hello")

Однако %Q вы видите в некоторых из документации Rails, кажется, не быть использованием этой функции Ruby. Если вы посмотрите на фактический source of form_helper.rb, у них их нет, поэтому я думаю, что это причуда инструмента документации rdoc.


Update: Как Фредерик, как писал в то время как я писал выше, это выглядит, как это rdoc bug.

2

<% %> и <%= %>, по-видимому, является общим стандартом. Я считаю, что %Q используется для строк в двойных кавычках:

>> %Q(Joe said: "Frank said: "#{what_frank_said}"") 
=> "Joe said: "Frank said: "Hello!""" 

Найденный через relevant link.

2

<% Q в документации является результатом ошибки в RDoc инструментов, используемых см this thread

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