1

これは簡単なはずですが、かなりグーグルで検索しました。

Rails アプリのデータベース ログを作成しようとしています。ログは、私がoftimestampを与えたフィールドを持つ postgres テーブルです。これは生の SQL で完全に機能します。クエリからフィールドを除外すると、現在のタイムスタンプが正しく取得されます。DEFAULTcurrent_timestamptimestampINSERT

私が持っているレールでは;

entry = LogTable.new :fieldA => 'valA', :fieldB => 'valB'
entry.save

(LogTable は ActiveRecord::Base を拡張します)

に設定されたフィールドを含むすべてのフィールドを含むINSERTクエリになりますが、これはデータベースで許可されていないため、エラーになります。timestampNULL

私は設定しよう:timestamp => 'current_timestamp':timestamp => 'DEFAULT'しましたが、すべてに設定しようとしましたNULL

4

1 に答える 1

1

current_timestamp は現在の日付/時刻ですか? もしそうなら、あなたは単純なままで、次のようなことをすることができます:

entry = LogTable.new :fieldA => 'valA', :fieldB => 'valB', :timestamp => Time.now

それがもっと複​​雑で、本当に DB 側のデフォルトを使用したい場合は、このページが役立つかもしれません: http://drawohara.com/post/6677354/rails-activerecord-default-values .

于 2013-02-28T19:31:18.597 に答える