gpt4 book ai didi

sql - Rails 4 ActiveRecord 有很多通过关系无法从 sql 文件读取

转载 作者:行者123 更新时间:2023-11-29 13:24:09 25 4
gpt4 key购买 nike

我目前正在开展一个项目,我必须从现有的 .sql 文件填充 postgresql 数据库,然后使用 ActiveRecord 为数据库播种: :Base.connection.execute(IO.read("path/to/file.sql"))

这会创建许多表和连接表,它们没有关联的迁移。

当我创建与数据库一起使用的 ActiveRecord 模型时,一切顺利,直到我尝试通过几个(预先存在的)连接表建立关系。示例:

class Store < ActiveRecord::Base
has_many :stores_teas
has_many :teas, through: :stores_teas
end

class Tea < ActiveRecord::Base
has_many :stores_teas
has_many :stores, through: :stores_teas
end

class StoresTeas < ActiveRecord::Base
belongs_to :store
belongs_to :tea
end

当我尝试调用类似 store.teas 的东西时,我收到一个错误:

NameError: uninitialized constant Store::StoresTea
from .../.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.3/lib/active_record/inheritance.rb:158:in `compute_type'

我之前在其他项目中已经多次建立这样的关系,但我总是通过 Rails 迁移创建表,而不是从同时创建表的 sql 文件加载。我还需要做什么来映射关系?

最佳答案

您混淆了 foreign_keys 和 ActiveRecord 关联。

class StoresTeas < ActiveRecord::Base
belongs_to :store
belongs_to :tea
end

关于sql - Rails 4 ActiveRecord 有很多通过关系无法从 sql 文件读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36706097/

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