0

Ruby Gem "Databasedotcom" を使用して Salesforce を Rails アプリに統合していますが、すべて正常に動作しますが、Rails アプリケーションと Salesforce で同じオブジェクト名の問題に直面しています。

Rails アプリケーションに User モデルがあり、User オブジェクトも Salesforce にあります。そのため、Salesforce User オブジェクトからデータを取得しようとすると、常に Rails アプリケーションの User オブジェクトが返されます。

これが私のコードです

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 User オブジェクトを使用してそのデータを取得したいと考えています。

助けてくれてありがとう。

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_moduleparamで使用するモジュールを指定するイニシャライザを作成します。

config/salesforce.yml:

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

config/initializers に初期化子を追加します。

salesforce.rb:

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

これで、SF モジュール内で User を使用できるようになり、AR ではなく SF User になります。

また、ドキュメントを読むことを強くお勧めします.SFコードをよりきれいにするのに役立つ方法がたくさんあります: http://rubydoc.info/github/heroku/databasedotcom/master/frames

SF頑張ってください!

于 2012-07-16T05:27:23.430 に答える