无法从Rails控制器呈现JavaScript

时间:2010-05-17 14:04:25

标签: ruby-on-rails rjs

当用户在表单中输入了无效内容时,我想显示带有错误消息的模态窗口,但如果一切正常,则显示另一个操作。但是,当我尝试用

显示模态窗口时
render :js => "jQuery.facebox(#{...})"

仅显示实际调用的JavaScript:

try {
  jQuery.facebox(...)
} catch (e) { alert('RJS error:\n\n' + e.toString());
  alert('jQuery.facebox(\"<div class=\'error\'>Error</div>\")');
  throw e;
}

3 个答案:

答案 0 :(得分:7)

您是否尝试过将代码部分放入?而不是

render :js => "jQuery.facebox(#{...})"

尝试

render :partial => "my_facebox_popup" 

然后在您的 _my_facebox_popup.html.erb 部分内放置您的代码:

<script type = "text/javascript">
...
</script>

调试使用firebug获得的任何错误。

答案 1 :(得分:1)

试试这个

 render :update do|page|
   page <<  "jQuery.facebox(#{...})"
 end

答案 2 :(得分:1)

也许你应该在jQuery调用中指定你正在等待的响应的dataType。

E.g:

$.ajax({ 
  url: "/controller/action/id", 
  success: function(){
    $(this).addClass("done");
  },
  dataType: 'script' 
});