gpt4 book ai didi

ruby-on-rails - 遗留数据库的 ActiveRecord 连接表

转载 作者:数据小太阳 更新时间:2023-10-29 07:10:35 25 4
gpt4 key购买 nike

我有一个遗留数据库,我正在努力让 ActiveRecord 使用它。我遇到了连接表的问题。我有以下内容:

class TvShow < ActiveRecord::Base

set_table_name "tvshow"
set_primary_key "idShow"

end

class Episode < ActiveRecord::Base
set_table_name "episode"
set_primary_key "idEpisode"
end

然后我有一个名为 tvshowlinkepisode 的表,它有 2 个字段:idShow、idEpisode 所以我有 2 个表和它们之间的连接(多对多关系),但是连接使用非标准外键。我的第一个想法是创建一个名为 TvShowEpisodeLink 的模型,但没有主键。我的想法是,由于外键是非标准的,我可以使用 set_foreign_key 并进行一些控制。最后,我想说一些类似 TvShow.find(:last).episodes 或 Episode.find(:last).tv_show 的内容。我如何到达那里?

最佳答案

我相信您可以使用 has_and_belongs_to_many 的选项比 Alvaro 的答案稍微优雅一些​​,尽管他的答案非常好并且会为您类(class)的任何客户产生完全相同的功能。

class TvShow < ActiveRecord::Base

set_table_name "tvshow"
set_primary_key "idShow"
has_and_belong_to_many :episodes,
:join_table => "tvshowlinkepisode",
:foreign_key => "idShow",
:association_foreign_key => "idEpisode"

end

class Episode < ActiveRecord::Base
set_table_name "episode"
set_primary_key "idEpisode"
has_and_belongs_to_many :tv_shows,
:join_table => "tvshowlinkepisode",
:foreign_key => "idEpisode",
:association_foreign_key => "idShow"
end

请注意,:foreign_key 选项指定哪一列是链接“这一侧”类的 ID,而 :association_foreign_key 指定哪一列是链接“另一侧”类的 ID。

将此与 Alvaro 的回答进行对比,此模式应避免实例化任何不必要的对象来表示链接。

关于ruby-on-rails - 遗留数据库的 ActiveRecord 连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1179930/

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