这是否可以使用Rails控制器和ajax?

时间:2013-06-30 15:20:23

标签: jquery ruby-on-rails ruby ajax

有没有更好的方法让ajax返回实时数据,而不是为此任务创建一个控制器,并经常通过$ .ajax调用它?

例如,要从Redis获取数据,我有一个控制器,其方法与

一致
def get_size
 begin
  render :text => JSON.generate({:data => redis_instance.get("some_key"})
 rescue Exception => e
  render :text => JSON.generate({:data => nil})
 end
end

然后我有$ .ajax调用/ get_size。这是一种可以接受的做法,还是有更好的替代方案我不知道?

1 个答案:

答案 0 :(得分:1)

据我所知,是的,如果您需要通过ajax从服务器获取数据,则需要在控制器中生成自己的操作。

你操纵数据的方式可能不同,你可以在控制器上做坏事(坏坏)或在客户端(更好),它取决于你正在构建的应用程序,但使用Javascrip MVC框架它正在成为这样做的标准方式。查看TODO MVC

唯一可能有所不同的是,如果您需要实施实时功能,可以查看WebSockets和推送服务器,例如FayeRailsCast)或Pusher所以你不必从执行请求的rails中提取数据X秒。

修改

另外,我忘了添加 Rails方式来执行ajax将使用rails.js并链接到remote: true属性,因此您可以使用脚本提供的事件,例如ajax:successajax:failure。您可以查看here

而且,在Rails 4中,您可以实时Live Streaming