我有一个名为' type'的列。在我的一张桌子里。当我尝试像group.type一样访问它时,我收到以下错误:
super: no superclass method `type' for #<Group:0x000000035eaf30>
但是,当我尝试使用迁移重命名列时,出现以下错误
No such column: groups.type (migration failed)
我尝试使用查询直接在mysql数据库中重命名列,但这也不起作用。
mysql> alter table groups change type group_type int(11);
ERROR 1054 (42S22): Unknown column 'type' in 'groups'
请帮忙。
答案 0 :(得分:10)
错误来自ActiveRecord附带的单表继承功能。只需告诉它使用与type
不同的列:
class Group < ActiveRecord::Base
self.inheritance_column = "not_sti"
#...
end
这样,您就不必重命名该列。
答案 1 :(得分:0)
我认为type
是ReservedWords in Ruby on Rails
所以尝试这样访问:
groups.[type]
答案 2 :(得分:0)
我想你会发现你必须用反引号(`)来包围这个单词类型。 'type'是我认为的保留字,这就是导致错误的原因。
我现在正在打电话,所以我无法粘贴您需要的角色,但它位于大多数标准键盘的左上角。