2012-09-08 3 views
1

현재 mongoid 2.0에서 mongoid 3.0.5로 마이그레이션 중입니다. 하나의 대상에있는 관계 중 하나는 has_many_related입니다. mongoid 3.0.5로 마이그레이션하려면 어떻게해야합니까? Google 검색이나 mongoid.org 및 two.mongoid.org 웹 사이트를 통해이 문서를 찾을 수 없습니다. 내가보고 있어야하는 곳이 있습니까?mongoid 3+에서 has_many_related 관계를 어떻게 사용합니까?

has_many_related :food_review do 
    def find_or_initialize_by_user_id(user_id) 
     criteria.where(:user_id => user_id).first || build(:user_id => user_id) 
    end 
    end 

감사 : 여기

코드입니다! 2.0 mongoid has_many_related의 코드를 보면

+0

은 (는) food_review 같은 컬렉션의 일부 또는 다른 컬렉션입니다. [이] (http://stackoverflow.com/questions/7761602/belongs-to-vs-belongs-to-related-has-many-vs-has-many-related) –

+0

둘 다 대답 belows 수 있습니다 맞습니다. 그 중 하나를 수락하거나 그렇지 않은 경우 게시물을 수정해야합니다. 자세한 내용은 – ksol

답변

4

has_many_related 대신 has_many를 사용하십시오. 예를 들어

:

class User 
    include Mongoid::Document 
    field :name, type: String 
    field ... 

    has_many :food_reviews 

    def find_or_initialize_by_user_id(user_id) 
    criteria.where(:user_id => user_id).first || build(:user_id => user_id) 
    end 
end 

class FoodReview 
    include Mongoid::Document 
    field ... 

    belongs_to :user 
end 

노트 복수 has_many :food_reviews 및 단수 class FoodReview. 단 하나의 리뷰를 참조하려는 경우 use has_one :food_review (Referenced 1-1 참조)

2

has_many에 불과 별칭 :

➜ mongoid git grep has_many_related 
lib/ mongoid/relations/macros.rb:  alias :has_many_related :has_many 

단지로 변경 : has_many하고 코드를 동일하게 유지. Mongoid 문서의 has_many에 대한 예제가 있습니다. here

관련 문제