出现这个错误的原因是在使用单表继承时,定义了一个无效的子类。
解决方法是确保子类正确继承了父类,并在数据库表中正确设置了type字段。
以下是一个示例代码,展示了如何正确定义和使用单表继承:
# 父类
class User < ActiveRecord::Base
self.abstract_class = true
end
# 子类
class Admin < User
# 定义子类的属性和方法
end
确保在数据库表中有一个名为type
的字段,并将其设为字符串类型。
运行数据库迁移以创建表:
rails db:migrate
然后,你可以使用User
和Admin
类了:
admin = Admin.new
admin.name = "John Doe"
admin.save
这样就能正确保存和检索Admin
对象了。
上一篇:ActiveRecord::StatementInvalid:无法找到表'user' Rails 5教程。
下一篇:ActiveRecord::UnknownAttributeReference:Querymethodcalledwithnon-attributeargument(s)