我有一个名为end
的模型。它在我使用SQLite的开发环境中工作正常。
但是在制作中我得到一个错误,因为PostgreSQL end
是一个保留字。
我不想重命名模型中的字段,因为要编辑的文件太多。
相反,我想声明一个映射规则,以便模型中的字段名称保持“结束”,但数据库中此字段的名称变为end_date
。
我怎么做?
答案 0 :(得分:0)
你最好的选择,长期来看,几乎可以肯定是把它搞砸并改变你所有的Ruby代码来使用end_date
。显然,这将是乏味的,因为end
也是一个Ruby关键字,这意味着搜索&替换不会只是工作;所以,如果你真的不能面对它,试试这个。
更改数据库中的名称,然后将以下两种方法添加到模型中:
class Widget < ActiveRecord::Base
def end
end_date
end
def end=(val)
self.end_date = val
end
end