gpt4 book ai didi

ruby-on-rails - Mongoid:对 MongoDB 的评论和 MySQL 上的用户?如何让它发挥作用

转载 作者:可可西里 更新时间:2023-11-01 10:01:29 24 4
gpt4 key购买 nike

我想创建一个同时使用 MongoDB 和 MySQL 的应用程序。具体来说,我希望 mongodb 存储所有用户的评论,而 MySQL 将存储用户模型。

class User < ActiveRecord::Base
has_many :comments
end

class Comment
include Mongoid::Document
include Mongoid::Timestamps
belongs_to :user
end

好吧,一切看起来都不错,除非我转到 Rails 控制台并运行它。

k = Comment.new
k.user = User.first

我得到了

NoMethodError: User Load (0.3ms) SELECT users.* FROM users WHERE users._id = 1 Mysql2::Error: Unknown column 'users._id' in 'where clause': SELECT users.* FROM users WHERE users._id = 1 undefined method `from_map_or_db' for

看起来 := 方法正在寻找模型的 _id 而不是 id?是否有一种解决方法可以使它自动运行,或者我是否需要创建自己的 = 方法?以前有人尝试过相同的配置吗?如果是这样,要使所有这些发挥作用,需要采取哪些步骤?

最佳答案

这不会像您希望的那样工作。 Comment 中的 belongs_to :user 告诉 Mongoid 在 MongoDB 中建立这种关联;为了建立 ActiveRecord 关联,您的类必须从 ActiveRecord::Base 继承或包含 ActiveRecord::Model——您不能两者都做!

可能做到这一点的最好方法——我不知道它有多难——是编写你自己的方法来关联 UsersComments 在一起。

关于ruby-on-rails - Mongoid:对 MongoDB 的评论和 MySQL 上的用户?如何让它发挥作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8774104/

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