のための未定義のメソッド「id_tagに」私はテーブルProductInfoからid_tagを取得したい:私CrawlProductクラスでActiveRecord_Associations_CollectionProxy
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を作成する方法である:あなたがeach
と反復コレクションのどちらかあなたがすべき各項目にそれを呼び出すために、その上にインスタンスメソッドを呼び出すか、とのIDを収集することはできませんので
class Domain < ActiveRecord::Base
domain = Domain.create(domain: 'https://www.example.com')
product_info = ProductInfo.create(domain: domain, id_tag: 'some content')
end
おかげで、しかし、私はまだエラーが発生しています。私は自分の質問を編集しました – GoYoshi
これらの行を使用しているアクションを追加してください – Sravan
モデルから直接 'css_id'を呼び出していますか? – Sravan