加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 20:50:48 所属栏目:百科 来源:网络整理
导读:我有一个表Foo,它有一个名为bar的多态belongs_to关联. foos表具有标准bar_id列.但是,我有一个整数bar_type_id列,而不是基于字符串的bar_type列.此列引用表bar_types中的id列. bar_types.name保存表示特定条形实例的类的类的名称. Rails(理想情况下 = 2.3.10)
我有一个表Foo,它有一个名为bar的多态belongs_to关联. foos表具有标准bar_id列.但是,我有一个整数bar_type_id列,而不是基于字符串的bar_type列.此列引用表bar_types中的id列. bar_types.name保存表示特定条形实例的类的类的名称.

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

解决方法

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

在config / initializers目录或您喜欢的任何位置,创建一个文件并定义哈希
INT_OBJECT_TYPE_TO_CLASSNAME = {0 => “项目”,1 => “任务”,2 => “时间表” }

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读