新手问题 一个棘手的问题,不能命名属性为 “type”

zealinux · 2012年09月10日 · 最后由 hooopo 回复于 2012年09月11日 · 2679 次阅读

当数据库中增加一栏命名为“type”,但这个 type 可以读出来,写进去会出错。

大家有什么好的解决方法。(除了改名字。)

这个。。。算了吧。ActiveRecord 有一些保留字段不能使用,比如 type。

覆盖 inheritance_column

@kenshin54 什么叫覆盖 inheritance_column ?

ActiveRecord 的 type 用来做单表继承,是个特殊字段,就跟 id 字段一样。

最简单还是自己换个名字,比如 post 的 type,就干脆叫 post_type。

话说 Mongoid 用的是 _type 字段,感觉更合理。不知是不是 MySQL 的字段名有限制。

#5 楼 @Rei 你这头像看着太眼熟了,太像四娘了

#6 楼 @kehao 靠,我帅多了

#3 楼 @zealinux @kenshin54 说的是这个意思:

ActiveRecord::Base.set_inheritance_column "tttype"

或者只在某个 Model 上使用:

User.set_inheritance_column "tttype"
需要 登录 后方可回复, 如果你还没有账号请 注册新账号