我在运行Ruby 1.9.3-p545和Rails 4.0.3的本地机器上输出一个ActiveRecord对象的JSON数组,它使用.json扩展名输出JSON,如果选择.xml也输出xml扩展
当我将此代码部署到使用Rails 4.0.3运行Ruby 1.9.3的弹性beanstalk环境时,会出现问题。
当我将此代码部署到我们的弹性beanstalk环境中时,也会出现问题,该环境在Passenger(独立版)或Puma上运行带有Rails 4.0.3的Ruby 2.0.0。
仅在使用.json:
时输出"#<ActiveRecord::Relation::ActiveRecord_Relation_CrmOrganisation:0x000000083ad5b0>"
真正奇怪的是,当在两个生产环境中使用.xml时,这种方法非常有效,并且在本地也能很好地工作。
我知道这与所包含的关系无关,因为当删除:include时会产生相同的结果。
这是我的代码:
class ApiCrmOrganisationsController < ApplicationController
include ApiHelper, ApplicationHelper
before_filter :authenticate_company
respond_to :xml, :json
def index
@crm_organisations = CrmOrganisation.where('updated_at > ? ', params[:delta]).order('organisation_name ASC').paginate(:page => params[:page]).per_page(params[:quantity].to_i)
respond_with @crm_organisations, :include => determine_include
end
end
答案 0 :(得分:0)
现在这已经解决了,我正在回答帮助未来遇到这个问题的人。
问题在于production.rb文件中的以下标志
production.rb的默认设置:
config.eager_load = true
更改为:
config.eager_load = false
它会完美运作。
开发和生产模式之间存在差异的原因是开发默认设置为:
config.eager_load = false