2012-01-16 10 views
0

私のRails 3アプリケーションでは、現在の生徒を現在の年との関係で学校名と卒業日で検索しようとしています。私は、卒業日(以下を参照)のないユーザーに対しては成功した検索を実行できますが、卒業日付属性が現在の年未満のユーザーを検索したいとします。参考までに、私はPostgreSQLを使用しています。次のように私が使用しているSql where t.date属性が今年よりも小さい

フィールドが設定されています

<%= pluralize(Profile.where(:high_school => "#{@highschool.name}").where("hs_grad_year IS NOT NULL").count, "person") %> 

答えて

1

あなたのコードでカップルの問題をあります(データベースから取得したレコードがないビューで、コントローラで行う必要があり、そしてあなたがのために、外部キーの代わりに、idフィールドとして高校名を使用しています例)。あなたの質問に答えてください:

Profile.where %' 
    high_school = ? AND 
    EXTRACT(year FROM hs_grad_year) < EXTRACT(year FROM current_date) 
    ', 
    @highschool.name 
+0

アラームをコントローラに保存していただきありがとうございます。私はそれが残っていることを確認します。 – tvalent2

1

をあなたがそこに.where("hs_grad_year < extract(year from current_date)")をしたい:

t.string :high_school 
t.date :hs_grad_year 

ここで私は現在働いている検索です。

Postgresでは、current_dateが現在の日付(yyyy-mm-dd)であり、extract関数はその日付の一部を抜き出しています。 Postgres hereで日付と時刻の関数の詳細を読むことができます。

+0

非常によく抽出を説明してくれてありがとう。それはたくさんの助けになりました! – tvalent2

1
Profile. 
    where(:high_school => @highschool.name). 
    where("hs_grad_year < ? OR hs_grad_year > ?", Date.today.year, Date.today.year) 
関連する問題