#ruby-on-rails #ruby-on-rails-3 #erb
#ruby-on-rails #ruby-on-rails-3 #ошибка
Вопрос:
Я только что взглянул наhttp://ruby-doc.org/ruby-1.9/classes/ERB.html а также http://ruby-doc.org/ruby-1.8/classes/ERB.html. Я видел, что следующее поддерживается как в 1.8, так и в 1.9.
% a line of Ruby code
Но после того, как a попробовал это в строке
% end ### changed from <% end %>
браузер просто показывает % end в обычном виде… Интересно, в чем здесь проблема?
(обновлено) еще один вопрос, кажется, когда комментарий типа #blabla появляется в <%= %>, rails выдает ошибку, есть идеи?
мой код для другого вопроса:
<%= @page_title || 'Pragmatic Bookshelf' #magic @page_title; a if a is true, else b%>
Спасибо
Комментарии:
1. можете ли вы опубликовать свой код просмотра и ошибку?
2. @krunal-shah Я подозреваю, что <%= code %> не разрешает #comment . не знаю, верна ли моя догадка или нет…
Ответ №1:
Это комментарий в ERB:
<%# Where is pancakes house? %>
принимая во внимание, что это ошибка:
<%= # I'll cook you some eggs, Margie. %>
Вы не можете объединить комментарий и <%= %>
синтаксис.
В документации, на которую вы ссылаетесь, вы можете заметить необязательное — см. Примечание ERB.new здесь:
% a line of Ruby code -- treated as <% line %> (optional -- see ERB.new)
И затем, ERB.new
должен ли это сказать:
Если *trim_mode * передается строка, содержащая один или несколько из следующих модификаторов, ERB скорректирует генерацию кода, как указано в списке:
% enables Ruby code processing for lines beginning with %
Так что у вас, вероятно, нет * trim_mode * в ваших ERB.new
параметрах.
Комментарии:
1. Спасибо. но для 1-го вопроса я пытался опустить пробелы, но все еще не работает.
2. разрешает ли <%= %> вставлять #comment в?
3. @mu слишком короткий, не могли бы вы объяснить, почему «Вы не можете объединить комментарий и синтаксис <%= %>». ?
4. @draw: Нет, я не могу это объяснить, поскольку не могу найти формальную грамматику или спецификацию для ERB 🙂 Лучшее, что я могу сделать, это сказать, что вам это запрещено, потому что анализатор ERB говорит «нет». У работы в неофициальных системах есть свои преимущества и недостатки.
Ответ №2:
Если *trim_mode * передается строка, содержащая один или несколько из следующих модификаторов, ERB скорректирует генерацию кода, как указано в списке:
% включает обработку кода Ruby для строк, начинающихся с %