gpt4 book ai didi

ruby-on-rails - 使用整数 ID 类型字段的多态关联

转载 作者:行者123 更新时间:2023-12-04 03:40:31 25 4
gpt4 key购买 nike

我有一张 table Foo具有称为 bar 的多态 belongs_to 关联. foos表有标准bar_id柱子。但是,而不是基于字符串的 bar_type列,我有一个整数 bar_type_id柱子。本专栏引用了 id表中的列bar_types . bar_types.name包含表示特定 bar 的类的类的名称实例。

Rails(理想情况下 >=2.3.10)是否允许这种类型的多态关联?

最佳答案

我们通过覆盖 association_class 来做到这一点新模块中的方法并使用 :extend 包含它选项。还创建了一个整数到字符串的映射哈希以使事情变得更容易。

config/initializers目录或您喜欢的任何地方,创建一个文件并定义哈希INT_OBJECT_TYPE_TO_CLASSNAME = { 0 => "Project", 1 => "Task", 2 => "Timesheet" }

class CommentObjectType < ActiveRecord::Base
module ClassNamesAsInt
def association_class
return INT_OBJECT_TYPE_TO_CLASSNAME[restricted_object_type].constantize
end
end
end

在comments.rb
belongs_to :commentable, :polymorphic => true, :extend => CommentObjectType::ClassNamesAsInt

关于ruby-on-rails - 使用整数 ID 类型字段的多态关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6131311/

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