If I do something like:
result = Appointment.find( :all, :include => :staff )
logger.debug { result.inspect }
then it only prints out the Appointment data, and not the associated staff data. If I do result[0].staff.inpsect then I get the staff data of course.
The problem is I want to return this to AJAX as JSON, including the staff rows. How do I force it to include the staff rows, or do I have to loop through and create something manually?
:include
is an argument for to_json
, not find
. What you need to do in your controller is this:
def return_json
@appointment = Appointment.find(:all)
respond_to { |format|
format.json { render :json => @appointment.to_json(:include => :staff) }
}
end
You need to setup an association between Appointment and Staff for this to work.
Check out ActiveRecord::Serialization and ActionController::Base (see section: "Rendering 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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With