是否可以在单个jqgrid中显示belongs_to
关系?
示例:
Vehicle
属于Person
我可以显示列出person_id的Vehicle
jqgrid,但我想显示Person
的名称,而不是他们的ID。
示例:
person_id|vehicle_type
1 | honda
person_name|vehicle_type
Tom | honda
EDIT(车辆控制器代码):
class VehiclesController < ApplicationController
def index
@vehicles = Vehicle.find(:all) {
if params[:page].present? then
paginate :page => params[:page], :per_page => params[:rows]
order_by "#{params[:sidx]} #{params[:sord]}"
end
}
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @vehicles }
format.json { render :json => @vehicles }
format.jgrid {
render :json => @vehicles.to_jqgrid_json(
[:person_id, :vehicle_type],
params[:page],
params[:rows],
@vehicles.total_entries
)
}
end
end
end
答案 0 :(得分:2)
我找到了一个没有修改查询的解决方案。在属性中,使用“person.name”将使用属于车辆的Person名称。
render :json => @vehicles.to_jqgrid_json(
["person.name", :vehicle_type],
params[:page],
params[:rows],
@vehicles.total_entries
)
答案 1 :(得分:0)
您需要在服务器端表达这种关系,例如将表连接在一起(尽管IIRC在Rails中有更优雅的方法):
SELECT p.person_name, v.vehicle_type
FROM vehicle v
INNER JOIN person p ON p.person_id = v.person_id
然后确保在您的jqgrid的colmodel中包含person_name
。