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

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 使用整数ID类型字段的多态关联前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个表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

猜你在找的Ruby相关文章