欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  资讯频道

ActiveJax - Ruby版的DWR

程序员文章站 2022-06-04 08:36:30
...
ActiveJax是一个ruby on rails的插件,可以把你的ActiveRecord对象的查询方法直接暴露给客户端的JavaScript来调用,原理非常近似Java的AJAX框架DWR,但是要比DWR简单好用:

class Author < ActiveRecord::Base
  active_jax
  def find_by_name(n)
    find(:all, :conditions => {:name => n})
  end
end


在model对象上面直接声明active_jax就可以把自己声明的find_by_name方法暴露出去,然后在JavaScript里面引用:

ActiveJax.Author.find_by_name("Nicholas Schlueter").
  each(function(author) {
  alert(author.name);
});


用ActiveJax.model.find....的方法直接调用服务器端的model的find方法,注意,这里使用的是prototype js库的语法。对于服务器端的对象,你还可以声明排除某些字段属性,避免一些信息的泄漏:
class Author < ActiveRecord::Base
  active_jax :include => :publisher, :excluded_columns => :email
  belongs_to :publisher
  def find_by_name(n)
    find(:all, :conditions => {:name => n})
  end
end

如上所示,排除了email字段。

http://rails.simpltry.com/active_jax.html