2010-08-30 67 views
0

我使用jqgrid和Ruby on Rails,使用2dc_jqgrid插件 - 2dc_jqgrid details)。使用2dc_jqgrid,我如何显示自定义数据?

默认情况下,插件似乎直接从模型中的字段获取信息并将其显示在结果表中。例如:

books = Book.find(:all) do 
    if params[:_search] == "true" 

    id =~ "%#{params[:id]}%" if params[:id].present? 

    model =~ "%#{params[:name]}%" if params[:model].present? 

    manufacturer =~ "%#{params[:publisher]}%" if params[:publisher].present? 

    end 
    paginate :page => params[:page], :per_page => params[:rows]  
    order_by "#{params[:sidx]} #{params[:sord]}" 
end 
if request.xhr? 
    render :json => books.to_jqgrid_json([:id,:name,:publisher], params[:page], params[:rows], camera_grids.total_entries) and return 
end 

使用此默认设置,制造商ID将显示在结果表(例如12)中。我想显示发布者的姓名。一本书属于出版商,所以我想指定book.publisher.name。我不知道如何或在哪里可以用2dc_jqgrid做到这一点。

有什么建议吗?谢谢。

回答

0

这适用于轨道3.下面的例子:

def index 

    index_columns ||= [:act, :id, :username, :firstname, :lastname, 'language.name', :disable] 
    current_page = params[:page] ? params[:page].to_i : 1 
    rows_per_page = params[:rows] ? params[:rows].to_i : 10 

    conditions={:page => current_page, :per_page => rows_per_page} 
    conditions[:order] = params["sidx"] + " " + params["sord"] unless (params[:sidx].blank? || params[:sord].blank?) 

    if params[:_search] == "true" 
     conditions[:conditions] = filter_by_conditions(index_columns) 
    end 

    @accounts = Account.paginate(conditions) 

    respond_to do |format| 
     format.html # index.html.erb 
     format.json { render :json => @accounts.to_jqgrid_json(index_columns, current_page, rows_per_page, @accounts.count) } 
    end 
    end 
相关问题