【发布时间】:2016-07-21 11:27:53
【问题描述】:
在我的 CrawlProduct 类中,我想从 ProductInfo 表中获取 id_tag:
class CrawlProduct < ActiveRecord::Base
belongs_to :crawl_link
css_id = self.crawl_link.domain.product_infos.id_tag
end
表CrawlProducts 有一个外键crawl_link,而表CrawlLinks 有一个外键domain,当然它来自表Domain。 ProductInfo 属于域。
class CrawlProduct < ActiveRecord::Base
belongs_to :crawl_link
end
class CrawlLink < ActiveRecord::Base
belongs_to :domain
has_one :crawl_product
end
class Domain < ActiveRecord::Base
has_many :crawl_links
has_many :product_infos
end
class ProductInfo < ActiveRecord::Base
belongs_to :domain
end
但最后,我总是收到以下错误:
undefined method `id_tag' for #<ProductInfo::ActiveRecord_Associations_CollectionProxy:0x0055d72e423640>
如何访问id_tag?据我所知,没有一列缺失。
编辑:在回答之后我得到一个不同的错误。
NameError: undefined local variable or method `id_tag' for #<CrawlProduct:0x0055d72fcd9fe0>
我不知道为什么会遇到这个问题。以下是我创建 id_tag 的方法:
class Domain < ActiveRecord::Base
domain = Domain.create(domain: 'https://www.example.com')
product_info = ProductInfo.create(domain: domain, id_tag: 'some content')
end
【问题讨论】:
标签: ruby-on-rails ruby database activerecord rails-activerecord