помощник с блоком и сырой - PullRequest
1 голос
/ 11 июля 2011

При наличии такого помощника, как этот

def helper_method(name, &block)
  result = block_given? ? capture(&block)
  ...
  result
end

И это представление HAML

= raw helper_method do
  .content
    some html content

результат равен нулю при использовании с raw.почему?

Я знаю, как решить эту проблему, есть много способов избежать ситуации, но я хочу знать, почему я теряю блок?

Ответы [ 2 ]

2 голосов
/ 11 июля 2011

Поскольку вы не используете (), блок не достигает helper_method.

В основном метод raw - это тот, который получает блок.

try: raw helper_method {}

Это одно из основных различий между do end и {} блоков.

Или используйте () для предотвращения двусмысленности.

0 голосов
/ 11 июля 2011

Я не уверен, потому что я никогда не хамл пользователя но вам не нужен конечный тег ??

как это:

<%= raw helper_method do %> 

<% end %> 

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...