2017-07-28 70 views
0

我正将应用程序从rails 5.0迁移到5.1,并且在访问相关模型时出现错误'Cant cast Hash'(一切正常5.0)。Rails 5.0 to 5.1 - 'Cant cast Hash'on one-to-many association

sighting.rb:

belongs_to :species, :class_name => 'Species', :foreign_key => 'species_id' 
belongs_to :site, :class_name => 'Site', :foreign_key => 'site_id' 
belongs_to :creator, :class_name => 'User', :foreign_key => 'creator_id' 
belongs_to :spotter, :class_name => 'User', :foreign_key => 'spotter_id' 

species.rb:

has_many :sightings, :class_name => 'Sighting', :foreign_key => 'species_id', :dependent => :restrict_with_exception 

site.rb:

has_many :sightings, :class_name => 'Sighting', :foreign_key => 'site_id', :dependent => :restrict_with_exception 

在控制台(已接种的数据库):

Sighting.find(1).site 

返回正确的网站模型。

Sighting.find(1).species 

在另一方面返回错误

TypeError: can't cast Hash 

两者相关联的模型(以及在用户模型 - 未示出)都设置了以相同的方式。正如我所说,如果我恢复到轨5.0再一次正常工作。

回答