为什么 quickbooks 在尝试 create/update 某些属性时会失败?

Why does quickbooks fail when trying to create/update certain attributes?

我正在尝试使用 quickbooks API 创建一个新客户。如果我只传递名称和活动属性,它就可以正常工作。但是,当我传递其他属性时,它失败了。

ruby 1.9.3p194 - Rails 3.1.3

gem 'strong_parameters', '~> 0.2.3'

gem 'quickbooks-ruby'

gem 'quickbooks-ruby-base'

gem 'oauth-plugin'

base = Quickbooks::Base.new(@user, :customer)
customer = base.qr_model(:customer)
customer.given_name = patient.first_name
customer.family_name = patient.last_name
customer.active = true
customer.primary_phone = patient.home_phone
customer.primary_email_address = patient.email
customer.billing_address = patient.address1 + " " + patient.address2 + " " + patient.city + " " + patient.state + " " + patient.zip
base.service.create(customer)

错误: NoMethodError:“”的未定义方法“地址”:String

好像我没有正确保存对象。有什么想法吗?

回答(感谢 Manas Mukherjee):

address  = Quickbooks::Model::PhysicalAddress.new
address.line1 = "103 Fake St.
address.city = "Simsbury"
... 
customer.billing_address = address

我还没有使用 ruby-gem 库。看起来,错误不是来自服务器,而是来自客户端 (ruby-gem)。

bill/ship地址没有定义为'String',它是一个复杂类型,叫做-'physicaladdress'。请检查您是否有正确的 setter 方法,该方法将 'physicaladdres' 类型作为参数。

Java 相当于 - customer.setBillAddr(PhysicalAddress val);

https://developer.intuit.com/docs/api/accounting [引用 - 复杂数据类型 -> 物理地址]。

客户文档参考 - https://developer.intuit.com/docs/0025_quickbooksapi/0050_data_services/030_entity_services_reference/customer