gpt4 book ai didi

ruby-on-rails-3 - Mongoid 与设计的关系

转载 作者:可可西里 更新时间:2023-11-01 09:46:42 25 4
gpt4 key购买 nike

我有一些带有 MongoDB、Mongoid 映射器和设计的 Rails 应用程序。 А授权用户可以创建、编辑、删除帖子(脚手架)和评论此帖子。我以 Ryan Bates 截屏视频的评论模型为例,第 238 集“Mongoid”。

评论.rb

class Comment
include Mongoid::Document
field :name
field :content
embedded_in :post, :inverse_of => :comments
end

后.rb

class Post
include Mongoid::Document
field :name
field :content
validates_presence_of :name
embeds_many :comments
end

用户.rb

class User
include Mongoid::Document
# Include default devise modules. Others available are:
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable

field :username

# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me

has_many :comments
references_many :post

end

但是当我尝试注册新用户时,在注册表单中按下“注册”,我看到了这个错误

Mongoid::Errors::MixedRelations in Devise::RegistrationsController#create

Referencing a(n) Comment document from the User document via a relational association is not allowed since the Comment is embedded.

我从 Mysql 数据库开始这个应用程序,然后决定迁移到 mongo。我的错误在哪里?

最佳答案

由于 Comment 嵌入在 Post 中,因此您应该让 User 引用 Post。尝试删除用户中的 has_many :comments

关于ruby-on-rails-3 - Mongoid 与设计的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8345546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com