了解 foreign_key 和 class_name 的关联使用
Understanding use of foreign_key and class_name in association
我是 rails 的新手,这是一个非常基本的问题。我试图了解外键和 class_name.
的需要
has_many :task, foreign_key: "created_by"
has_many :memberships, class_name: "TaskMembership"
谁能解释一下 foreign_key & class_name 的需要。
has_many
关联用于 rails 中的一对多类型关系。例如,如果您的模型 User
可以有很多配置文件,那么您的 User
到配置文件关联将有很多。
class User < ActiveRecord::Base
has_many :profiles
end
class Profile < ActiveRecord::Base
belongs_to :user
end
如果您在配置文件 table 中有一个不同于 user_id 的外键,您可以明确指定 foreign_key。 class 名称也是如此。如果您的关联名称与实际模型名称不同,您可以在关联后明确指定 class 名称(就像您为会员所做的那样)。
希望对你有帮助。
在您的模型中
class First < ActiveRecord::Base
has_many :seconds
end
class Second < ActiveRecord::Base
belongs_to :first
end
并在您的第二个 class table 中创建 first_id 列
这是我的问题的答案
假设您有一个用户模型并且 Post model.And 您必须设置一个关联,例如 User has many post
User Model
has_many :posts
Post Model
belongs_to :user
现在假设您的用户是某个作者,所以我们必须设置一些有意义的名称,所以我们将使用作者而不是用户,但必须指定 class 它指的是哪个
Post Model
belongs_to :author, class_name: 'User'
现在会出现问题,因为 rails 将在帖子 table 中查找 author_id 列。所以这里外键将进入 picture.We 必须找到 user_id
Post Model
belongs_to :author, class_name: 'User', foreign_key: 'user_id'
查看更多更好的解释association
我是 rails 的新手,这是一个非常基本的问题。我试图了解外键和 class_name.
has_many :task, foreign_key: "created_by"
has_many :memberships, class_name: "TaskMembership"
谁能解释一下 foreign_key & class_name 的需要。
has_many
关联用于 rails 中的一对多类型关系。例如,如果您的模型 User
可以有很多配置文件,那么您的 User
到配置文件关联将有很多。
class User < ActiveRecord::Base
has_many :profiles
end
class Profile < ActiveRecord::Base
belongs_to :user
end
如果您在配置文件 table 中有一个不同于 user_id 的外键,您可以明确指定 foreign_key。 class 名称也是如此。如果您的关联名称与实际模型名称不同,您可以在关联后明确指定 class 名称(就像您为会员所做的那样)。 希望对你有帮助。
在您的模型中
class First < ActiveRecord::Base
has_many :seconds
end
class Second < ActiveRecord::Base
belongs_to :first
end
并在您的第二个 class table 中创建 first_id 列
这是我的问题的答案
假设您有一个用户模型并且 Post model.And 您必须设置一个关联,例如 User has many post
User Model
has_many :posts
Post Model
belongs_to :user
现在假设您的用户是某个作者,所以我们必须设置一些有意义的名称,所以我们将使用作者而不是用户,但必须指定 class 它指的是哪个
Post Model
belongs_to :author, class_name: 'User'
现在会出现问题,因为 rails 将在帖子 table 中查找 author_id 列。所以这里外键将进入 picture.We 必须找到 user_id
Post Model
belongs_to :author, class_name: 'User', foreign_key: 'user_id'
查看更多更好的解释association