gpt4 book ai didi

ruby-on-rails - has_many、belong_to 和两者之间的区别

转载 作者:搜寻专家 更新时间:2023-10-30 23:14:45 26 4
gpt4 key购买 nike

以下三种情况有什么区别?

#Case 1
class User < ActiveRecord::Base
has_many :comment
end

class Comment < ActiveRecord::Base
belong_to :user
end

案例 1 同时具有 has_many 和 belong_to。

#Case 2
class User < ActiveRecord::Base
has_many :comment
end

class Comment < ActiveRecord::Base
end

情况 2 只有 has_many。

#Case 3
class User < ActiveRecord::Base
end

class Comment < ActiveRecord::Base
belong_to :user
end

案例3只有belong_to。

既然 has_many 和 belong_to 都代表一对多关系,我们如何决定应该使用这三者中的哪一个?

最佳答案

它们需要相同的数据库模式。区别仅在于为您定义了哪些方法。

当您将 has_many :comments 添加到 User 时,您将获得引用 user.comments 的能力,因此可以轻松找到评论对于特定的用户对象(并使用 user.comments.build 等创建新的用户对象)。

当您将 belongs_to :user 添加到 Comment 时,您将获得引用 comment.user 的能力,因此可以找到用户特定评论对象属于谁。

这些调用只是创建方便的方法供您在操作模型对象时使用。我建议同时使用两者,因为您可能希望同时使用两者,并且对于阅读代码的人来说,两者之间的关系更加清晰。

关于ruby-on-rails - has_many、belong_to 和两者之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15857633/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com