0

我有一个名为end. 它在我使用 SQLite 的开发环境中运行良好。

但是在生产中我得到一个错误,因为 PostgreSQL whereend是一个保留字。

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

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

我该怎么做?

4

1 回答 1

0

从长远来看,您最好的选择几乎肯定是接受它并更改所有 Ruby 代码以使用end_date. 显然,这将是乏味的,因为end它也是一个 Ruby 关键字,这意味着搜索和替换不会只是工作;所以如果你真的无法面对它试试这个。

更改数据库中的名称,然后将以下两个方法添加到您的模型中:

class Widget < ActiveRecord::Base

  def end
    end_date
  end

  def end=(val)
    self.end_date = val
  end

end
于 2013-11-07T14:57:18.463 回答