我正在尝试通过两个模型之间的has_one建立直接关系,Client
和Address
,如has_one
:billing_address
,但Client
没有'与Address
,Contact
有直接关系,模型:
客户端
class Client < ActiveRecord::Base
belongs_to :contact
accepts_nested_attributes_for :contact
end
与
class Contact < ActiveRecord::Base
has_one :client
has_many :addresses, dependent: :destroy
accepts_nested_attributes_for :addresses, allow_destroy: true
end
地址
class Address < ActiveRecord::Base
belongs_to :contact
enum kind: [:address, :shipping, :billing]
end
所以我想要的是能够Client.shipping_address
或Client.billing_address
,enum
模型中的Address
是允许查询的内容。这背后的原因是因为Contact
Client
将有两个地址记录,一个用于计费,一个用于发货,我希望通过关系快速访问
我尝试使用客户端模型:
has_one(:billing_address, -> { where(kind: :billing) }, class_name: Address, through: :contact)
但在视图中我是:
client.billing_address
我得到了undefined method to_sym' for nil:NilClass
而且我似乎无法解决它,谢谢。
答案 0 :(得分:1)