データベースには、かつて purchase_date と呼ばれる列と、lifetime と呼ばれるもう 1 つの列が 2 つあります。現在の課税年度が与えられたときに、有効期限が過ぎていない資産のみが表示されるように、結果をフィルタリングしようとしています。
私はもう試した
Asset.where("? < DATE_ADD(purchase_date,INTERVAL lifetime YEAR) AND purchase_date >= ?",Date.new(2012,1,1),Date.new(2012,1,1))
しかし、それが機能する場合、これは MySQL に関連付けられることに気付きました。これが私の完全なアプリケーションで機能するだけであれば問題ありません。しかし、特にこれは Sqlite に対してテストされているため、データベースに依存しないものが必要です。このクエリを使用した Sqlite では、次の例外が発生します。
ActiveRecord::StatementInvalid: SQLite3::SQLException: ほぼ寿命
データベースに依存しない方法で、SQL ステートメントの日付列に整数列を追加するにはどうすればよいですか?
アップデート
Squeel で遊んでみましたが、うまくいくとは思いません。アダプターを検出し、それをベースにすることは可能かもしれません。