有很多
has_many
关联表示与另一个模型的一对多连接。该关联通常位于 belongs_to 关联的另一侧。
此关联指示模型的每个实例具有零个或多个另一个模型的实例。
例如,在包含用户和帖子的应用程序中,可以像这样声明用户模型:
class User < ApplicationRecord
has_many :posts
end
Post
的表结构将与 belongs_to
示例中的表结构相同; 相比之下,User
不需要任何架构更改。
如果要获取 User
的所有已发布帖子的列表,则可以添加以下内容(即可以向关联对象添加范围):
class User < ApplicationRecord
has_many :published_posts, -> { where("posts.published IS TRUE") }, class_name: "Post"
end