0

在新的迁移中,我尝试添加一列并填充其值:

  def up
    add_column :topics, :status, :string
    Topic.reset_column_information
    Topic.find_each do |t|
      if t.ended?
        t.status = 'ended'
      end
    end
    Topic.reset_column_information
  end

我不知道为什么,但是在添加列之后,在 Topic.find_each 期间引发了以下异常:

单表继承机制找不到子类:'other'。

我的主题模型确实声明​​了以下内容:

  self.inheritance_column = 'class_name'

所以我不确定为什么它仍然尝试使用类型列来查找 STI 子类。

4

1 回答 1

0

我发现一旦我删除reset_column_information,问题就消失了。

    add_column :topics, :status, :string
    # Topic.reset_column_information
    Topic.find_each do |t| ...

reset_column_information删除 STI 列设置可能存在错误。

于 2013-10-31T03:12:51.037 回答