0

タイムゾーンのないタイムスタンプとしてデータ型を持つbill_dateという名前の列が1つあります。

次に、bill_dateを使用してレコードを検索します。ユーザーは2012-12-09のように日付を入力します。

Bill.find_by_bill_date(2012-12-09)を使用したい。

上記のものは結果を与えません。型キャストをしなければならないからです。いくつか提案をお願いします。where句や条件を使いたくありません。find_byのみを使用したい。

4

2 に答える 2

1

次のように Bill クラスにメソッドを追加するだけです。

def self.find_by_bill_date(date)
  where("DATE(bill_date) = DATE(?)", date).first
end

where句を使いたくないと言ったのは知っていますが、とにかく、動的ファインダーメソッド(find_by_*)はまったく同じことを行います。

于 2012-12-14T10:28:57.857 に答える
0

Date.today をタイムスタンプ フィールドに入れることはお勧めできません。そのまま使いたい場合は、 Date.today の代わりに Time.now を入れるか、列を日付に変更してください。

編集: 型キャスト:

>> h.published_at_before_type_cast
=> "2012-11-15 19:11:15.517923"
于 2012-12-14T10:32:11.840 に答える