在rails中更改多态关联的类型

时间:2015-07-30 07:43:56

标签: ruby-on-rails ruby ruby-on-rails-3

我是rails的新手,我正在使用rails Polymorphic association,我遇到了一个问题 我有两个型号EmployeeTable和ProductTable。两者都有图片模型中的一些图片

class Picture < ActiveRecord::Base
   belongs_to :imageable, polymorphic: true
end

class EmployeeTable < ActiveRecord::Base
   has_many :pictures, as: :imageable
end

class ProductTable < ActiveRecord::Base
  has_many :pictures, as: :imageable
end

图片imagable_id和imagable_type中有两列。当我在表中创建一个条目时,它将imagable_type存储为“EmployeeTable”或“ProductTable”。我可以将这些名称更改为“员工”和“产品”等任何其他名称。

提前致谢

1 个答案:

答案 0 :(得分:0)

要在不使用表的情况下检索image_type,可以在模型中添加此方法。保存时更改已关联的型号名称将导致查询时出现问题

def neat_imageable_type
   self.imageable_type.gsub("Table", "").downcase
end