ROR中的Ajax只能使用link_to_remote吗?

看《WEB开发敏捷之道》到第10章了,看到里面的AJAX都是使用link_to_remote这样的函数,添加了很多的不需要的JS库
个人更喜欢开发JSP的时候,使用SERVLET什么的直接返回我需要的结果,比如在SERVLET用JSON返回商品信息

ROR里能这样实现吗?如何实现呢,我看了一下网上,似乎也都是使用link_to_remote这类函数的

你可以使用自己定义的ajax,而一点都不要用rjx。
只要在controller respond_to 下面添加个响应ajax的语句就行了,返回json、或者xml的数据

link_to_remote 只是rails封装的prototype这个js库
当然可以用各种各样的其他的js库
[url]http://railscasts.com[/url]上有用jquery的视屏
你可以参考一下

你也可以像这样来用
render :update do |page|
page.replace_html "voting", :partial => 'voting'
page["voting_status"].replace_html '您已经打分'
end

不用 rails 提供的 JS 库,手动实现也可以。不过就比较繁琐了。
如果你经过性能测试,发现这是个瓶颈才考虑吧,否则就是做无用功。

[b]做法[/b]:
在一个控制器里面添加一个方法,然后你在页面向对应的 url 如 '/some/action' (这个 url 对应 SomeController 的 action 方法) 发 Ajax 请求即可,不需要像 servlet 那样还要另外配置 mapping 那么麻烦。

方法中可以用 request.xhr? 来判断请求是否为 xmlhttprequest;
控制器中也可以使用 before_filter 等过滤器来控制 ajax action 的权限,控制输出结果等。