模型中的字段名称与数据库中的字段名称

时间:2013-11-07 14:54:39

标签: ruby-on-rails

我有一个名为end的模型。它在我使用SQLite的开发环境中工作正常。

但是在制作中我得到一个错误,因为PostgreSQL end是一个保留字。

我不想重命名模型中的字段,因为要编辑的文件太多。

相反,我想声明一个映射规则,以便模型中的字段名称保持“结束”,但数据库中此字段的名称变为end_date

我怎么做?

1 个答案:

答案 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