AJAX与Ruby on Rails?
这可能是一个非常愚蠢的问题,但一个简单的答案,但...AJAX与Ruby on Rails?
我正在一个项目,我需要使用AJAX发送/接收信息。我正在使用Ruby on Rails(我很新),而不是使用helper方法或默认Javascript文件中的内置功能,我需要在自己的Javascript中手动执行此操作。
我相信最终我会发送一个带有JSON对象的请求,然后让控制器返回另一个包含请求信息的JSON对象。
问题是,我似乎无法找到用于直接从Javascript发送某些特定控制器方法的参数的语法 - 我所有的Google结果都是使用Rails AJAX辅助方法的教程。
如果使用jQuery
是您的选择,jQuery.ajax
将解决您的问题。
[对于那些喜欢说jQuery不是解决所有问题的人,我知道这一点。我只是给他一个选择]。
根据Rails的版本你使用,你可以做到以下几点:
安装jrails插件。这将用jQuery替换应用程序中的所有Prototype JavaScript。这意味着你现在可以访问所有的jQuery库,但它不会破坏你现有的rails帮助器(remote_form_for等)。
-
现在您可以使用jQuery AJAX来制作您想要制作的任何AJAX请求。一个简单的例子是像下面的东西:
//Let's get a specific post by id $.ajax({ type: "GET", url: "/posts/123", success: function(data){ //put the data in the DOM } });
然后,只需添加相应respond_to在你的控制器:
PostsController < ApplicationController
def show
@post = Post.find(params[:id)
respond_to do |w|
w.json { render :json => @post.to_json }
end
end
end
+1:谢谢你的好例子。 – 2010-03-15 15:43:51
从来没有使用jQuery的,但毕竟是看起来很有希望。你知道在jQuery中添加是否会破坏现有的Rails AJAX支持? (或其他Javascript相关的事情) – 2010-03-15 14:55:16
我不认为它会打破任何东西。我在工作中使用jQuery,这非常有帮助。看看http://api.jquery.com/jQuery.ajax/ – 2010-03-15 14:59:27
jQuery可以通过覆盖“$”选择器来破坏事物。您可以通过调用noConflict(http://api.jquery.com/jQuery.noConflict/)或通过我的答案切换JavaScript提供程序来解决此问题。 – 2010-03-15 15:32:47