шаблон ruby ​​string-eval bug? - PullRequest
       1

шаблон ruby ​​string-eval bug?

2 голосов
/ 19 февраля 2012

В следующих A и B должны быть эквивалентны, но работает только версия A.Оценка строки рельсов кажется сломанной или происходит слишком рано / поздно или что-то в этом роде.Есть идеи?

<% content_for :main do %>

<script type="text/javascript">

  $(function(){

    //$("#users-new").dialog();          //A

    $(<%= "\"#users-new\"" %>).dialog();  //B

  });

</script>

<div  id="users-new">
  testing
</div>

<% end %>

1 Ответ

3 голосов
/ 19 февраля 2012

Rails3 + HTML по умолчанию кодирует содержимое в <%= ... %>.Это означает, что ваш B выглядит так:

$(&quot;#users-new&quot;).dialog();

, и это не имеет смысла в JavaScript.Вы хотите один из них:

$(<%= raw "\"#users-new\"" %>).dialog();
$(<%= "\"#users-new\"".html_safe %>).dialog();

Любой из них даст вам ожидаемый JavaScript:

$("#users-new").dialog();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...