了解foreign_key和class_name的关联使用

时间:2016-05-11 10:05:45

标签: ruby-on-rails associations

我是rails的新手,这是一个非常基本的问题。我正在尝试理解外键和class_name的需要,但我在理解这个概念时面临一些问题。

has_many :task, foreign_key: "created_by"
has_many :memberships, class_name: "TaskMembership"

此处有 foreign_key class_name 的用法。

2 个答案:

答案 0 :(得分:-1)

has_many关联用于rails中的一对多类型关系。例如,如果您的模型User可以包含多个配置文件,那么您的User配置文件关联将有很多。

    class User < ActiveRecord::Base
      has_many :profiles
    end

    class Profile < ActiveRecord::Base
      belongs_to :user
    end

如果在配置文件表中有一个与user_id不同的外键,则显式指定foreign_key。类名称的情况也是如此。如果您的关联名称与实际模型名称不同,则在关联后显式指定类名称(就像您对成员资格所做的那样)。 希望它有所帮助。

答案 1 :(得分:-1)

在您的模型中

class First < ActiveRecord::Base
  has_many :seconds
end

class Second < ActiveRecord::Base
  belongs_to :first
end

并在第二个类表中创建first_id列