ruby on rails 3-别名Mongoid中引用的关系字段



在下面的Mongoid模型中,如何别名belongs_to关系字段?

class Contact
  field :nm, :as => :name, :type => String # field aliasing
  embeds_one :address, :store_as => :ad  # embedded document aliasing
  belongs_to :account # referenced relation doesn't support store_as
end

我想将帐户id存储在名为ac而不是account_id的字段中。

您可以使用:foreign_key来指定mongodb字段名。

belongs_to :account, foreign_key: :ac

但是,如果要使用account_id,则需要声明其别名:

alias :account_id :ac

或在belongs_to:之前定义account_id

field :account_id, as: :ac

Mongoid允许通过使用‘inverte_of’为关系使用任意名称

如果不需要反转,如belongs_to或has_and_bellongs_to_many,请确保在关系如果需要反转,则很可能无法从亲戚的名字中找出,你需要明确地告诉Mongoid关于关系的相反是什么。

因此,为了使用"ac"作为别名,有必要添加inverse_of:

class Contact
  field :nm, :as => :name, :type => String # field aliasing
  embeds_one :address, :store_as => :ad  # embedded document aliasing
  belongs_to :ac, class_name: 'Account', inverse_of: :contact
end
class Account
  has_one :contact, class_name: 'Contact', inverse_of: :ac
end

相关内容

  • 没有找到相关文章

最新更新