2017-04-12 17 views
0

Rails 5アプリケーションでActiveRecordモデルとActiveRecordモデルを使用して、私のDBから特定の項目を取得したいと考えています。ActiveRecordは独自の属性で項目を取得します

scope :test, -> { where("seen_at > ?", some_number.hours.ago) } 

しかし、それは次のエラー発生します:

を私はすべてのエントリ次の条件の一致を取得する範囲を指定したいモデルに、今

create_table :my_models do |t| 
    t.datetime :seen_at 
    t.integer :some_number 

    t.timestamps 
end 

:テーブルは次のようになります

NameError: undefined local variable or method `some_number' 

私もmy_models.some_number.hours.agoを試しましたが、それでも問題は解決しません。私は間違って何をしていますか?

+0

'スコープ行うことができますPostgresの使用している場合:テスト、 - >(some_number){( "?seen_at>"、some_number.hours.ago)}' – radubogdan

+0

たTHX @radubogdanをしかし、私はそれに引数を渡したいとは思わない^^ – Severin

+0

どのようにそれを取得したいですか? – radubogdan

答えて

1

あなたは

scope :test, -> { where("seen_at > now() - (interval '1 hour' * some_number)") } 
+1

チップのためのThx、素晴らしい作品。 – Severin

関連する問題