gpt4 book ai didi

mysql - Rails 3 : has_and_belongs_to_many relationship being created, 但无法检索

转载 作者:行者123 更新时间:2023-11-30 00:59:46 25 4
gpt4 key购买 nike

简短版本:

我有一个 Rails 3.2.1.4 单元测试,它试图在外部数据库中创建新的多对多关系。关系已创建,但我无法让 ActiveRecord 检索它。

长版本:

我有一个 Rails 3.2.1.4 项目,该项目正在与外部 MySQL 数据库进行交互,该数据库有两个表,这两个表通过传统的联接表具有多对多关系。

我有一个测试,可以在现有数据上创建新关系,但无法检索该关系。这是失败的测试:

class ExternalTest < ActiveSupport::TestCase
def setup
@foo_id = 1
@foo = ExternalAsset.find(@foo_id)
end

test "subjects attach correctly"
@foo.external_subjects << ExternalSubject.find(2)
assert_equal 1, ExternalAsset.find(@foo_id).external_subjects.count
end
end

更令人沮丧的是,使用几乎完全相同的代码添加和查询多对多关系在控制台中工作得很好。

我用谷歌搜索了这件事,但一无所获。我最好的猜测是,这是 ActiveRecord、外部数据库连接和测试框架的某种奇怪的交互。

这是我正在处理的模型:

class ExternalAsset < ActiveRecord::Base
establish_connection "external_#{Rails.env}"

self.table_name = :assets

has_and_belongs_to_many :external_subjects, :join_table => :assets_subjects,
:association_foreign_key => :subject_id, :foreign_key => :asset_id
end

class ExternalSubject < ActiveRecord::Base

establish_connection "external_#{Rails.env}"

self.table_name = :subjects

has_and_belongs_to_many :external_assets, :join_table => :assets_subjects,
:association_foreign_key => :asset_id, :foreign_key => :subject_id
end

最佳答案

我认为这是因为你在测试中使用静态ID,尝试 use fixtures例如。

一些备注:你没有清楚地说明你的问题,而且你的问题实在太长了,你应该在一个代码示例中用几行总结你的问题。

关于mysql - Rails 3 : has_and_belongs_to_many relationship being created, 但无法检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20247590/

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