c2h*_*2h2 2 ruby web-crawler mongoid
大家好我有一个类似下面的类爬行器模型:
class Link
include Mongoid::Document
include Mongoid::Timestamps
field :url, type: String
field :links, type: String
index :url
has_many :pages
end
Run Code Online (Sandbox Code Playgroud)
如果链接重复URL并且它们有许多入站/出站连接,我想让它工作,所以:
a_link.links # => gives a list of outbound link objects.
Run Code Online (Sandbox Code Playgroud)
怎么用mongoid呢?
您可以has_and_belongs_to_many在关系的每一侧使用多个关联进行设置.
class Link
include Mongoid::Document
has_and_belongs_to_many :links, :class_name => 'Link', :inverse_of => :inbound_links
has_and_belongs_to_many :inbound_links, :class_name => 'Link', :inverse_of => :links
end
Run Code Online (Sandbox Code Playgroud)
由于在这种情况下关联是来自同一个类,因此您需要为mongoid提供class_name和inverse_of的一些帮助,因为它无法从关联名称推断出这一点.