Ruby on rails 4 Rails禁用特定模型的即时加载

Ruby on rails 4 Rails禁用特定模型的即时加载,ruby-on-rails-4,eager-loading,activeresource,Ruby On Rails 4,Eager Loading,Activeresource,我正在编写一个Rails应用程序,其功能是通过ActiveResource与第三方API(streamsend)接口。我使用shopify的fork of ActiveResource进行线程安全操作,因为我的应用程序的不同用户将拥有自己的streamsend API客户端ID和密钥,我不希望我的应用程序在与第三方API交互时踩到它们 我的控制器中有一个与around\u动作相关联的filter: private # set StreamSend credentials in every re

我正在编写一个Rails应用程序,其功能是通过ActiveResource与第三方API(streamsend)接口。我使用shopify的fork of ActiveResource进行线程安全操作,因为我的应用程序的不同用户将拥有自己的streamsend API客户端ID和密钥,我不希望我的应用程序在与第三方API交互时踩到它们

我的控制器中有一个与
around\u动作相关联的
filter:

private

# set StreamSend credentials in every request
def set_ss_credentials
  StreamSend.site,
    StreamSend.user,
      StreamSend.password = current_user_credentials
  yield
ensure
  StreamSend.site =
    StreamSend.user =
      StreamSend.password = nil
end

DEFAULT_SITE, DEFAULT_USER, DEFAULT_PASSWORD = [
Rails.application.secrets.streamsend_api_endpoint, "username", "password" ]

def current_user_credentials
  current_user.present? ?
    [ Rails.application.secrets.streamsend_api_endpoint, current_user.ss_userid, current_user.ss_key ] :
    [ DEFAULT_SITE, DEFAULT_USER, DEFAULT_PASSWORD ]
end
在我的模型中:

class StreamSend < ActiveResource::Base
  self.format = :xml
  def self.audience
    @audience ||= StreamSend::Audience.find(:first)
  end
end
class StreamSend
站点和凭据将通过控制器操作和当前登录的用户输入

这在使用WEBrick时效果很好,但由于Rails在生产模式下的默认设置是
config.eager\u load=true
,因此我的应用程序无法启动,因为实际模型也缺少站点和凭据


有什么方法可以让我告诉“急切加载”
忽略我的战神相关模型,但急切加载我的所有实际数据库模型吗?

在生产模式下启动时出现的错误来自:

def self.audience
  @audience ||= StreamSend::Audience.find(:first)
end

默认情况下,将受众硬编码为1允许我在生产模式下启动应用程序。目前这还可以,因为Streamsend每个帐户只支持一个访问者。

在生产模式下启动时出现的错误来自:

def self.audience
  @audience ||= StreamSend::Audience.find(:first)
end
默认情况下,将受众硬编码为1允许我在生产模式下启动应用程序。目前还可以,因为Streamsend只支持每个帐户一个访问者