首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mongoid在has_many关联中的位置

mongoid在has_many关联中的位置
EN

Stack Overflow用户
提问于 2012-04-06 23:16:57
回答 2查看 535关注 0票数 0

由于mongo不是关系型的,我想知道如何在has_many多态关联上找到特定的类型。

我有3个模型,地点,城市和国家,所有3个都可以有评论(多态)

如何返回具有特定模型关联的所有评论?我知道如何在简单的has_many关联上做到这一点,但在多态关联上却不知道?

通常我会这样做:

代码语言:javascript
复制
  @user = User.where(username: params[:user]).first
  @user ? @reviews = @reviews.where(user_id: @user.id) : @reviews = nil

但是对于多态关联,我迷路了吗?

代码语言:javascript
复制
#@reviews = params[:review_type].constantize if params[:review_type].present? #@reviews.reviewable.where(review_type: params[:review_type])

@reviews = Review.order_by([:updated_at, :desc]).page(params[:page])#.order(sort_column + " " + sort_direction)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-07 19:54:10

我假设您的多态关系名为reviewable,您可以按其关联类型查询您的评论,如下所示:

代码语言:javascript
复制
Review.where(:reviewable_type => "Place") # Returns all reviews for 'places'
Review.where(:reviewable_type => "City") # Returns all reviews for 'cities'
Review.where(:reviewable_type => "Country") # Returns all reviews for 'countries'
票数 1
EN

Stack Overflow用户

发布于 2012-04-07 17:45:02

如果您在模型中很好地定义了关联关联,则只需调用该方法即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10045460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档