2016-09-02 15 views
0

に属しているとき、私は2つのモデルがあります:未定義のメソッド `relations`割り当てが関連

class Annotation 
    include Mongoid::Document 
    belongs_to :event 
    field :desc, type: String 
end 

class Event::Event 
    include Mongoid::Document 
    has_many :annotations 
end 

をそして、私は次のように入力して、レールコンソールで2つのオブジェクトを作成しました:

a = Annotation.new 
e = Event::Event.new 

を今何もかもが良いですが、

:私は

a.event = e 

を行うとき、私は次のエラーを取得します

NoMethodError: undefined method `relations' for Event:Module 

なぜこのエラーが発生し、修正するのですか?ありがとう。

+0

なぜそれが 'class Event :: Event'ですか? –

+0

@Deepak私はそれに名前空間を与えたいからです。 –

答えて

1

は、これを試してください:デフォルトで

class Annotation 
    include Mongoid::Document 
    belongs_to :event, class_name: 'Event::Event' 
    ... 
end 

belongs_to会合型Eventであると関連するオブジェクトを想定したが、Eventモジュールです。ここのクラス名はEvent::Eventです。したがって、その関係で指定する必要があります。

助けてくれたら教えてください。

+0

こんにちは、あなたは私の問題を解決しました!どうもありがとうございました。私は、デフォルトがイベントを想定していることを知らなかった。あなたはドキュメントのどの部分にそれを指定するのか教えていただけますか?私がRailsを初めて使うので、ありがとうございます。迷惑メールの質問に申し訳ありません。 –

+0

probsはありません。私の毎日の使用からこのオプションを知っていますが。詳細はこちらをご覧ください。 http://apidock.com/rails/v4.2.1/ActiveRecord/Associations/ClassMethods/belongs_to –

関連する問題