有点困惑如何响应铁路3的远程link_to的...

问题描述:

我一直在使用轨道remote => true。 jQuery中我使用'ajax:before''ajax:success'拿起页面上,并在控制器我下面对AJAX或HTML调用响应事件:有点困惑如何响应铁路3的远程link_to的...

format.html{ 
    redirect_to xxxx_path 
} 
format.json { 
    render :json => { :something => true } 
} 

但是我似乎有很多的问题,把远程真实的链接。

当我把远程真正的链接,在控制器如果我做formal.json(下同)没有获取的触发对此作出回应:

format.json { 
    render :json => { :something => true } 
} 

,如果我做的:

format.js{ } 

...在控制器中有一个在jQuery中的响应。但是,不调用'ajax:success'事件,只调用'ajax:complete',这是不正确的。

我想知道如何在rails 3中设置远程链接,如果链接是远程或只是普通的html调用,我都可以在控制器中做出不同的响应。所以回应json的远程链接和正常的html。我如何让jquery选择'ajax:success'响应。我对这一切如何运作感到困惑。

谢谢!

+0

与'format.js'一起,你有'method.js.erb'视图来触发它吗? – Matt 2013-03-13 17:36:50

您能缩小提问码吗?

在上面的'ajax:before'应该是'ajax:beforeSend'。

在你的控制器,你可以测试是否请求是AJAX或不喜欢的东西

if request.xhr? 
    render nothing: true 
else 
    redirect_to @your_object 
end 

您应该格式添加到您的远程链接,以确保控制器知道该怎么回答

:'data-type' => 'html' 
+0

我给链接添加了:'data-type'=>'json'。谢谢! – Smickie 2013-03-14 22:30:39

我想你需要在URL中指定格式json。

例如

<%= link_to some_path(format: :json, remote: true) %>