0

我正在使用 Ruby Gem“Databasedotcom”将 Salesforce 集成到 Rails 应用程序中,一切正常,但我现在面临 Rails 应用程序和 Salesforce 中对象名称相同的问题。

我的 Rails 应用程序中有一个用户模型,并且用户对象也在 Salesforce 中。因此,当尝试从 Salesforce 用户对象获取数据时,它总是返回 Rails 应用程序用户对象。

这是我的代码

client = Databasedotcom::Client.new
client.client_id      #=> foo
client.client_secret  #=> bar

client.authenticate :username => "foo@bar.com", :password => "ThePasswordTheSecurityToken"  #=> "the-oauth-token"

client.materialize("User");

@user = User.find_by_Id('005d0000001291x');

但上面的语句总是使用 Rails 中的 User 模型。

我想使用 Salesforce 用户对象来获取它的数据。

谢谢你的帮助。

4

1 回答 1

2

首先将您的 SF 代码封装在一个模块中,如下所示:

module SF
  module Connection          
    def self.client
      @client = Databasedotcom::Client.new("config/salesforce.yml")
      @client.authenticate :username => SF_CONFIG['username'], :password => SF_CONFIG['password_with_token']
      @client
    end
  end
end

并在您指定要与sobject_module参数一起使用的模块的位置创建初始化程序:

配置/salesforce.yml:

username: username
password_with_token: token
client_secret: secret
client_id: cliend_id
sobject_module : SF

将初始化程序添加到配置/初始化程序:

销售人员.rb:

SF_CONFIG = YAML.load_file('config/salesforce.yml') rescue nil

现在您可以在 SF 模块中使用用户,它将是 SF 用户,而不是您的 AR 用户。

而且我强烈建议您阅读文档,有很多方法可以帮助您使 SF 代码更清晰: http ://rubydoc.info/github/heroku/databasedotcom/master/frames

祝顺丰顺利!

于 2012-07-16T05:27:23.430 回答