所以我昨天刚刚开始了我的第一个铁轨项目。我的应用程序中有两个多对多(has_and_belongs_to_many)关系。模型游戏和团队之间有一个,模型统计和结果之间有另一个。通过迁移自己创建连接表,这一切都很好。
然后我决定我不希望统计/结果关系是多对多的,但是对于许多人而言,所以我运行了以下迁移并将关系切换为has_many和belongs_to:
class FixingResultStatRelationship < ActiveRecord::Migration
def self.up
add_column :results, :stat_id, :integer
drop_table "results_stats"
end
def self.down
remove_column :results, :stat_id
create_table "results_stats", :id => false do |t|
t.column "result_id", :integer
t.column "stat_id", :integer
end
add_index "results_stats", "result_id"
add_index "results_stats", "stat_id"
end
end
然后,当我这样做时,不仅新的一对多关系不起作用,因为我在调用say Result.find(0).stat时得到NoMethodError,但现在我之前的工作多对多关系游戏和团队现在也被打破了。我以前能够调用Game.fine(0).teams只是查找并查看结果,现在我也得到NoMethodError。有什么想法吗?我很失落,任何帮助都会很棒。
答案 0 :(得分:0)
我刚才意识到我拥有belongs_to:stats而不是单数形态。我修复了这个并重新加载了服务器,现在一切正常。不管怎样,谢谢阿比。