Ruby on rails 两者之间的区别有很多,属于,两者都有

Ruby on rails 两者之间的区别有很多,属于,两者都有,ruby-on-rails,database,Ruby On Rails,Database,以下三种情况的区别是什么 #Case 1 class User < ActiveRecord::Base has_many :comment end class Comment < ActiveRecord::Base belong_to :user end #案例1 类用户

以下三种情况的区别是什么

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

class Comment < ActiveRecord::Base
  belong_to :user
end 
#案例1
类用户
案例1既有许多,又有属于的

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

class Comment < ActiveRecord::Base
end 
#案例2
类用户
案例2只有很多

#Case 3
class User < ActiveRecord::Base
end 

class Comment < ActiveRecord::Base
  belong_to :user
end 
#案例3
类用户
案例3只属于您


既然两者都有“多”和“属于”来表示一对多的关系,我们如何决定应该使用这三者中的哪一个

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

当您将
has\u many:comments
添加到
User
时,您就可以引用
User.comments
,从而轻松找到特定用户对象的注释(并使用
User.comments.build
等创建新的注释)

当您将
所属\u to:user
添加到
Comment
时,您可以引用
Comment.user
,从而找到特定注释对象所属的用户


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

这对服务器工作负载有何影响?两者都使用会增加开销吗?不会明显影响服务器工作负载。数据库架构完全相同,因此您发出的查询是相同的。请注意,您的
has-many
应该是复数:
has-many:comments
什么时候应该使用单数和复数?
has-many
=复数(many),
属于单数(仅属于1)。我刚刚注意到你的
所属的
也错了,你漏掉了一个“s”。此外,如果使用的是
has\u one
,则需要使用单数。