我正在尝试在我正在制作的小型爬虫上使用String作为主/外键。但是当我尝试使用关联方法时,我一直收到以下错误(例如:a.crawler_details - 其中a是一个名为Asin的对象):
RangeError: 8532503039 is out of range for ActiveRecord::Type::Integer with limit 4
记录示例:
#<Asin asin: "8532503039", title: "O Físico", image_url: nil, active: false, created_at: "2015-05-04 03:30:29", updated_at: "2015-05-04 03:30:36">
以下是详细信息:
2.1.2 :001 > Asin.new
=> #<Asin asin: nil, title: nil, image_url: nil, active: true, created_at: nil, updated_at: nil>
2.1.2 :002 > CrawlerDetail.new
=> #<CrawlerDetail id: nil, amazon_price: nil, feed_price: nil, first_place: nil, second_place: nil, third_place: nil, fp_price: nil, sp_price: nil, tp_price: nil, run: nil, created_at: nil, updated_at: nil>
class Asin < ActiveRecord::Base
has_many :crawler_details, :foreign_key => 'id', :primary_key=> 'asin'
self.primary_key = 'asin'
...
end
class CrawlerDetail < ActiveRecord::Base
has_one :asin, :foreign_key => 'asin', :primary_key => 'id'
end
我也尝试过belongs_to关系,但没有运气。这里有什么想法吗?
答案 0 :(得分:0)
我认为这不是关联错误,您是否在数据库表中定义了字段名称“asin”类型整数?
它可能会有所帮助,请尝试将数据库表从类型整数更改为字符串。