2017-09-13 13 views
0

名前を付けたスコープを作成しようとしていますが、作成した最初の1週間以内に更新されるレコードのみを受け取っています。 ご覧のとおり、列名created_atのエラーメッセージが表示されます。RAILS:列の値から日付範囲のスコープを定義する方法は?

scope :shortlived, where("updated_at < ?", (created_at+7.days)) 


undefined local variable or method `created_at' for #<Class:0xb184725c> 

何か問題がある場合はお知らせください。

答えて

2

これは、ここに投稿された回答と似ています。 postgreSQLを使用している場合は、その差を「7日間」の間隔と比較することができます

scope :shortlived, -> { where("(updated_at - created_at) < '7 days'") } 
3

データベース固有のものを使用できます。たとえば、MySQLの場合:

scope :shortlived, -> { where('updated_at < created_at + interval 3 day') } 
関連する問題