【问题标题】:Problems modelling a relational database with ActiveRecord in Ruby on Rails在 Ruby on Rails 中使用 ActiveRecord 建模关系数据库的问题
【发布时间】:2016-04-03 14:46:57
【问题描述】:

我有 3 个模型(用户、团队和联盟),我想在它们之间建立以下关系:

  • 一个用户可以拥有多个团队。
  • 一个联赛由多个团队组成,并且归一个用户所有。
  • 一个团队同时属于一个用户和一个联赛。

我是 Ruby on Rails 的新手,我似乎无法弄清楚如何表示这些关系。当我尝试测试模型时,我在实例化团队时遇到错误,因为我不知道如何同时从用户和联盟构建团队。任何帮助将不胜感激,在此先感谢。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 activerecord


    【解决方案1】:

    型号:

    class User < ActiveRecord::Base
      has_many :teams
    end
    
    class League < ActiveRecord::Base
      belongs_to :user
      has_many :teams
    end
    
    class Team  < ActiveRecord::Base
      belongs_to :league
      belongs_to :user
    end
    

    迁移:

    create_table(:users) do |t|
      t.string :name
      t.timestamps
    end
    
    create_table(:leagues) do |t|
      t.references :user, index: true
      t.string :name
      t.timestamps
    end
    
    create_table(:teams) do |t|
      t.references :league, index: true
      t.references :user, index: true
      t.string :name
      t.timestamps
    end
    

    我建议阅读有关 associationsmigrations 的 Rails 指南。

    【讨论】:

    • 感谢您的帮助!!显然,我在运行测试时犯了一个不相关的错误,导致我认为我的模型相互关联的方式存在某种问题。
    猜你喜欢
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-21
    相关资源
    最近更新 更多