Работает как taggable on - enum методы не работают в таблице тегов - PullRequest
0 голосов
/ 30 ноября 2018

Я использую Act-as-Taggable-On Gem.Он автоматически создает таблицы tags и taggings.Но я хотел добавить дополнительный столбец с именем status к tags таблице.Я сгенерировал миграцию для добавления status столбца.

Затем я создал файл с именем tag.rb в app/models

class Tag < ApplicationRecord
  enum status: { public: 0, private: 1 }
end

Tag.first.private?, работает

, но

ActsAsTaggableOn::Tag.first.private? не работает

Выдает эту ошибку: NoMethodError (undefined method 'is_private?' for #<ActsAsTaggableOn::Tag:0x00007fb8414b4028>)

Я даже сделал

module ActsAsTaggableOn
  class Tag < ApplicationRecord
    enum status: { public: 0, private: 1 }
  end
end

Почему-то это тоже не работаетРабота.Может кто-то указать, что не так.

Редактировать: Это файл миграции

class AddStatusToTags < ActiveRecord::Migration[5.2]
  def change
    add_column :tags, :status, :integer, default: 0, null: false
  end
end

1 Ответ

0 голосов
/ 01 декабря 2018

Используйте ::ActiveRecord::Base вместо ApplicationRecord

module ActsAsTaggableOn
  class Tag < ::ActiveRecord::Base
    enum status: { public: 0, private: 1 }
  end
end
...