Jquery 模板ruby字符串评估错误?

Jquery 模板ruby字符串评估错误?,jquery,ruby-on-rails,ruby,jquery-ui,Jquery,Ruby On Rails,Ruby,Jquery Ui,在以下情况下,A和B应该是等效的,但只有A版有效。rails字符串评估似乎已中断或发生得太早/太晚或其他情况。有什么想法吗 <% content_for :main do %> <script type="text/javascript"> $(function(){ //$("#users-new").dialog(); //A $(<%= "\"#users-new\"" %>).dialog(); //B

在以下情况下,A和B应该是等效的,但只有A版有效。rails字符串评估似乎已中断或发生得太早/太晚或其他情况。有什么想法吗

<% 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 %>

$(函数(){
//$(“#用户新建”).dialog();//A
$().dialog();//B
});
测试

默认情况下,Rails3+HTML对
中的内容进行编码。这意味着你的B结果如下:

$(&quot;#users-new&quot;).dialog();
这在JavaScript中毫无意义。您想要其中一个:

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

真正奇怪的是,下面的代码可以工作,尽管它不应该:$().dialog();或者更确切地说,它间歇性地工作——真的很奇怪……第二个也没有version@Mark字体“不工作”是什么意思?你看过页面的源代码了吗?好的,现在两个版本都在工作,但这并不意味着什么,因为刚才两个版本都没有工作,正如我前面提到的,$().dialog()也工作过一次,尽管它不应该工作,然后停止工作。@Mark:你在某处有缓存问题。当生成的页面不工作时,请使用浏览器的视图源查看该页面。好的,它们现在都工作正常。不知道为什么它一开始不起作用-也许rails中的某些东西(使用测试服务器)的传播有些延迟。如果我没有任何问题,我会回来把这个标记为已回答。谢谢。
$("#users-new").dialog();