user.rb
# Relationships references_many :houses,:dependent => :delete
现在我有一个用脚手架创建的样板房:
house.rb
# Relationshipsreferenced_in :user,:inverse_of => :houses embeds_many :deals
现在我对这种关系有一个模型处理:
embedded_in :house,:inverse_of => :deals
在我的routes.rb我有:
resources :houses do resources :dealsend
当我尝试让用户在控制台中进行交易时:
ruby-1.9.2-p180 :009 > User.first.deals.first
我收到下一个错误:
MongoID::Errors::MixedRelations: Referencing a(n) Deal document from the User document via a relational association is not allowed since the Deal is embedded.解决方法 根据您提供的信息,用户与交易没有直接关系.
看来你试图这样做:
class User [...] references_many :houses,:dependent => :delete references_many :dealsendclass Deal [...] embedded_in :house referenced_in :userend
由于您的交易已嵌入到Houses中,因此您无法通过关系直接从用户访问它们.
这是MongoID的一个已知限制.
您可以使用 :
@houses_that_match = House.where("deals.user_ID" => @user.ID)@deals = []@houses_that_match.each do |house| @deals += house.deals.select { |deal| deal.user == @user }end总结
以上是内存溢出为你收集整理的ruby-on-rails – Mongoid ::错误:: MixedRelations:Mongoid Devise全部内容,希望文章能够帮你解决ruby-on-rails – Mongoid ::错误:: MixedRelations:Mongoid Devise所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)