2010-10-06 27 views
0

我有一个模型,说User。我想打电话/usersusers_controller#index)和基本上传递一个范围,以便它返回一个基于数据:Rails InheritedResources - 使用`find_and_return_for_some_grid`而不是`find(:all)`来响应JSON,?

  1. 格式(JS,JSON,HTML)
  2. 图表/网格/布局将在呈现(highcharts,基本的HTML表,jQuery的flexigrid等)

随着inherited_resourceshas_scope,你可以做这样的事情,但它不是这么回事。

我想回到[{:page => 10, :cells => [{:name => "User A"}...]}]如果PARAMS是像{:action => "index", :format => "js", :grid => "flexigrid"},并返回一个HAML模板呈现[#<User name='User A'>...]如果它只是HTML。

如何在带有继承资源的Rails中进行REST风格的操作?

事情是这样的:

class UsersController < InheritedResources::Base 
    respond_with :js, :method => :find_and_return_for_grid 
end 

这是否需要我creating my own Responder

回答

1

你需要重写指数法,是这样的:

def index 
    index! do |format| 
    format.html 
    format.js do 
     if(params[:grid] == "flexigrid") 
     render :json => format_for_grid(collection).to_json 
     end 
    end 
    end 
end 

随着format_for_grid的方法,其将用户的数组数据格式你想

本人来说说我不会格式化js的响应是这样的,我的意思是分割单元格中的响应是我在js视图方面做的事情,因为它与你想要显示数据的方式有关,我认为它会尝到更多的Restful来返回非显示面向对象的collection.to_json