加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – DataMapper – 为什么“has”和“belongs_to”?

发布时间:2020-12-17 02:42:10 所属栏目:百科 来源:网络整理
导读:我刚刚开始使用DataMapper,我正在试图弄清楚为什么需要指定一个has和一个belongs_to. 例如,查看DataMapper网站上的示例.这不是多余的吗?如果Post有n条评论,那么评论是否会自动发表所有帖子?为什么我必须指定这个? class Post include DataMapper::Resourc
我刚刚开始使用DataMapper,我正在试图弄清楚为什么需要指定一个has和一个belongs_to.

例如,查看DataMapper网站上的示例.这不是多余的吗?如果Post有n条评论,那么评论是否会自动发表所有帖子?为什么我必须指定这个?

class Post
  include DataMapper::Resource

  property :id,Serial

  has n,:comments
end

class Comment
  include DataMapper::Resource

  property :id,Serial
  property :rating,Integer

  belongs_to :post  # defaults to :required => true

  def self.popular
    all(:rating.gt => 3)
  end
end

解决方法

仅当您要使用额外规范生成的方法时,才指定关系的两侧.它完全是可选的:如果你从不需要从评论中找到帖子(例如@ comment.post),你就不必在Comment中指定belongs_to关系.

一个优点是您的实例更清晰,因为在Comment中,其他方法不会自动生成.另一方面,如果你需要它们,那些额外的方法不会打扰你.

另见documentation about associations in ActiveRecord.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读