0

という名前のモデルがありendます。SQLite を使用する私の開発環境では問題なく動作します。

endしかし、本番環境では、PostgreSQL が予約語であるためにエラーが発生します。

編集するファイルが多すぎるため、モデル内のフィールドの名前を変更したくありません。

代わりに、モデル内のフィールド名は「end」のままですが、データベース内のこのフィールドの名前はend_date.

どうすればそれができますか?

4

1 に答える 1

0

あなたの最善の策は、長期的には、ほぼ確実にそれを吸い上げて、すべての Ruby コードを使用するように変更することend_dateです。明らかに、これendも Ruby のキーワードであるため、面倒です。つまり、検索と置換は機能しません。本当にそれに直面できない場合は、これを試してください。

データベース内の名前を変更してから、次の 2 つのメソッドをモデルに追加します。

class Widget < ActiveRecord::Base

  def end
    end_date
  end

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

end
于 2013-11-07T14:57:18.463 に答える