充当可标记的 - 枚举方法在标记中不起作用 table
Acts as taggable on - enum methods not working in tags table
我正在使用 acts-as-taggable-on gem。它会自动创建 tags
和 taggings
table。但我想在 tags
table 中添加一个名为 status
的附加列。我生成了一个迁移以添加 status
列。
然后我在 app/models
下创建了一个名为 tag.rb
的文件
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
使用::ActiveRecord::Base
代替ApplicationRecord
module ActsAsTaggableOn
class Tag < ::ActiveRecord::Base
enum status: { public: 0, private: 1 }
end
end
我正在使用 acts-as-taggable-on gem。它会自动创建 tags
和 taggings
table。但我想在 tags
table 中添加一个名为 status
的附加列。我生成了一个迁移以添加 status
列。
然后我在 app/models
tag.rb
的文件
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
使用::ActiveRecord::Base
代替ApplicationRecord
module ActsAsTaggableOn
class Tag < ::ActiveRecord::Base
enum status: { public: 0, private: 1 }
end
end