Если я делаю что-то как:
result = Appointment.find( :all, :include => :staff )
logger.debug { result.inspect }
затем это только распечатывает данные Назначения а не связанные данные штата. Если я действительно заканчиваюсь [0] .staff.inpsect затем, я получаю данные штата, конечно.
Проблема, я хочу возвратить это Ajax как JSON, включая строки штата. Как я вынуждаю это включать строки штата, или я должен циклично выполниться через и создать что-то вручную?
: include
является аргументом для to_json
, а не find
. Что вам нужно сделать в вашем контроллере, так это:
def return_json
@appointment = Appointment.find(:all)
respond_to { |format|
format.json { render :json => @appointment.to_json(:include => :staff) }
}
end
Чтобы это работало, вам необходимо настроить связь между назначением и персоналом.
Посмотрите 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