由于mongo不是关系型的,我想知道如何在has_many多态关联上找到特定的类型。
我有3个模型,地点,城市和国家,所有3个都可以有评论(多态)
如何返回具有特定模型关联的所有评论?我知道如何在简单的has_many关联上做到这一点,但在多态关联上却不知道?
通常我会这样做:
@user = User.where(username: params[:user]).first
@user ? @reviews = @reviews.where(user_id: @user.id) : @reviews = nil但是对于多态关联,我迷路了吗?
#@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)发布于 2012-04-07 19:54:10
我假设您的多态关系名为reviewable,您可以按其关联类型查询您的评论,如下所示:
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'发布于 2012-04-07 17:45:02
如果您在模型中很好地定义了关联关联,则只需调用该方法即可。
https://stackoverflow.com/questions/10045460
复制相似问题