代码之家  ›  专栏  ›  技术社区  ›  Jack

尝试删除rails中的has\u和\u-belish\u-to\u-many关系

  •  0
  • Jack  · 技术社区  · 16 年前

    所以我昨天才开始我的第一个rails项目。在我的应用程序中,我有两个多对多(has_和_-belies_-to_-many)关系。我有一个模型之间的游戏和团队,另一个模型之间的统计数据和结果。通过迁移自己创建联接表,这一切都很顺利。

    然后,我决定不希望统计/结果关系是多对多,而是多对多,因此我运行了以下迁移,并将关系切换为has_many和belown_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时得到了一个命名错误,但现在我以前与游戏和团队的多对多关系也被打破了。我以前可以称之为游戏。很好(0)。团队只需找到并查看结果,现在我也得到了一个命名错误。有什么想法吗?我完全迷路了,任何帮助都会很好。

    1 回复  |  直到 16 年前
        1
  •  0
  •   Jack Jack    16 年前

    我刚刚意识到我的属性是:stats,而不是单一的stats。我修复了这个问题,重新加载了服务器,现在一切正常。无论如何谢谢你,艾比。