【发布时间】:2018-11-30 03:24:50
【问题描述】:
我正在使用acts-as-taggable-on gem。它会自动创建tags 和taggings 表。但我想在tags 表中添加一个名为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
【问题讨论】:
-
您的迁移(将
status添加到tags的位置)是什么样的?我推测您将该列添加到了错误的表中。 -
你能用
::ActiveRecord::Base代替ApplicationRecord吗? -
@jvillian 我编辑了问题以添加迁移文件。
-
@emaillenin,谢谢它的工作。
标签: ruby-on-rails enums ruby-on-rails-5 acts-as-taggable-on