我有以下關係。我想要一個職位來has_one current_wrent,但has_many的職位,保持跟蹤wrent對象。我認爲這個問題可能與軌道被混淆了,我正在討論哪種關係。保存父母與子女的關係
當我引用post.current_wrent時,這個返回正確無誤。
Class Post
include Mongoid::Document
include Mongoid::Timestamps
...
has_one :current_wrent, :class_name => "Wrent", :inverse_of => :current_wrent, :autosave => true, :dependent => :destroy
has_many :wrents, :inverse_of => :post, :dependent => :destroy
end
Class Wrent
..
belongs_to :post, :autosave => true
..
end
當我這樣做.. (在Wrent.rb)
def accept!
update_attributes!(:status => 1, :accepted => true)
post.current_wrent = self
post.available = false
post.save!
notify_user
end
,我得到一個「當前Wrent」是無效的錯誤,可能有人點我的東西我做的這裏錯了嗎?
編輯:這似乎工作正常。 在wrent.rb
Class Wrent
..
belongs_to :post, :inverse_of => :wrent, :autosave => true
belongs_to :post, :inverse_of => :current_wrent
在post.rb 類崗位 ...
has_one :current_wrent, :class_name => "Wrent", :inverse_of => :post
belongs_to :current_wrent, :class_name => "Wrent", :inverse_of => :post
has_many :wrents, :inverse_of => :post, :dependent => :destroy
我仍然不知道是什麼問題,但現在我可以通過訪問post.current_wrent belongs_to current_wrent_id列和問題似乎消失。
你可以發佈錯誤的完整堆棧跟蹤? – usha
我沒有堆棧跟蹤,但它所做的最後一件事是post.save!並導致它崩潰並返回錯誤「驗證失敗:Current_wrent無效」。這個問題與current_wrent關係定義的方式有關 –