由於mongo不是關係型的,我想知道如何在has_many多態關聯中找到特定類型。mongoid在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)
爲什麼不使用'@ user.reviews'? – MikDiet 2012-04-06 17:38:19
對不起,也許我不清楚,它不是用戶模型,我只是用它作爲我通常會這樣做的例子(非多態) – ere 2012-04-06 18:34:57
我明白,但多態關聯的工作原理類似。因此,您可以使用「Place.first.reviews」或「City.first.reviews」 – MikDiet 2012-04-06 19:16:39