【发布时间】:2014-08-14 18:09:42
【问题描述】:
我在Ruby on rails 应用程序中使用databasedotcom gem 来访问我的Salesforce 实例,但在正确的命名空间下创建sObject 时遇到了一些问题。我的数据库中已经有一个名为 User 的模型,所以当我第一次尝试从 Salesforce 获取 User 对象列表时,我得到了本地定义的模型。
在阅读之后,我发现我可以使用sobject_module 为我用来连接到我的 Salesforce 实例的客户端指定一个命名空间。我这样做了,我还在我的项目中为 Salesforce 模型定义了一个模块。但是,我仍然返回本地定义的 User 模型,而不是 Salesforce 定义的 User 模型。如果我尝试访问 Salesforce 中存在但不在本地的模型,则该对象将在正确的命名空间下返回。
为什么会这样?我想一旦我为客户端设置了sobject_module,它应该在正确的命名空间下返回模型。这是我的客户端连接:
client = Databasedotcom::Client.new(
client_id: "my_client_id",
client_secret: "my_client_secret",
sobject_module: "Sale"
)
client.oauth_token = client.authenticate( username: "my_username", password: "my_password")
这是我为 Salesforce 对象定义的模块:
module Sale
end
这有效,它返回<Sale::Organization:0x007f90ef8ad590>
client.materialize("Organization")
然而这不是,它返回<User:0x007f8f7e5a06d0>
client.materialize("User")
提前致谢
更新
我无法让它为我工作,但我找到了另一个宝石,它与它完美配合。我使用了restforce gem
【问题讨论】:
标签: ruby-on-rails namespaces salesforce databasedotcom-gem