2011-11-17 92 views
2

我在窗口7个,并呈现渲染:JS不工作

render :js => "alert('Hello')". 

面临的问题,但它是没有得到警报。

有没有人有过这个问题的经验。

+0

请出示您的控制器方法和Ajax调用。它在Windows上运行的事实与此问题无关。 – nathanvda

+0

请求是要xyz方法,但我已添加一个之前的过滤器,具有渲染代码:def session_expiry render:js =>“alert('Mine method')”,:content_type =>'text/javascript' – Neelesh

回答

0

确保客户端使用JS格式请求,因为在这种情况下,Rails会为js设置内容类型,而不是text/html

+0

In任何情况下,我没有得到警报我尝试了异步和同步请求。我使用的是窗口机器。 – Neelesh

+0

检查浏览器中的请求响应。如果它是'text/html',那么你的客户端代码发送的请求的内容类型无效。例如,在'ajax'上的jQuery中,您可以指定'dataType'参见(http://api.jquery.com/jQuery.ajax/) –

+0

更改为content_type => application/x-javascript – Neelesh

0

看起来你正在尝试调试你的代码。使用before_filter不是最好的方法。一个请求只能渲染一次。

我建议在您的日志记录中添加语句,并使用浏览器的JavaScript /开发控制台(Chrome/Firefox):这将显示完美的线路,dn在客户端执行什么操作以及为什么失败(如果失败)。

希望这会有所帮助。

+0

不,我没有调试我的代码,看到一个请求转到MyController的创建方法,但我添加了一个before_filer:check_active_time check_active_time已经呈现:js =>“alert('hello')”,并且完成了此过程由ajax.so这是场景...请帮助我,如果有任何.. – Neelesh

+0

1)我相信'before_filter'渲染是错误的! 2)使用我声明的工具来搜索错误,或显示更多的代码。像@MarkGut所说,'render:js'只有在你的ajax是正确的时候才会起作用。 – nathanvda

+0

嗯,我理解,但我的需要就像它,我必须重定向到登录页面,如果用户闲置30分钟。和所有页面正常工作与redirect_to但一些页面只有ajax(使用骨干),所以我需要渲染的Ajax请求...我没有选择,如果你有更好的想法请让我知道 – Neelesh

1

你应该使用AJAX所以你应该“远程:真正的”添加帕拉姆调用链接或形成正在调用该操作