如果我这样做:
result = Appointment.find( :all, :include => :staff )
logger.debug { result.inspect }
然后它只打印出约会数据,而不是相关的人员数据。 如果我做了[0] .staff.inpsect,那么我当然得到了员工数据。
问题是我想将此作为JSON返回给AJAX,包括人员行。如何强制它包含人员行,或者我是否必须循环并手动创建某些内容?
答案 0 :(得分:22)
:include
是to_json
的参数,而非find
。您需要在控制器中执行的操作是:
def return_json
@appointment = Appointment.find(:all)
respond_to { |format|
format.json { render :json => @appointment.to_json(:include => :staff) }
}
end
您需要在约会和工作人员之间建立关联才能实现此目的。
答案 1 :(得分:1)
查看ActiveRecord::Serialization和ActionController::Base(请参阅“渲染JSON”一节)
def show
@appointment = Appointment.find(:all, :include => :staff)
respond_to do |format|
format.html
format.js { render :json => @appointment.to_json(:methods => [:staff]) }
end
end