2016-06-18 7 views
2

に参加することにより制限と順序私は3つのモデルを持っています私のイベントテーブルにuser_idとtrがありますaining_idだけでなく、日付。この日付は、ユーザーが特定のトレーニングを受けた日付を表します。ルビー - - HAS_MANYを通じて表属性

ユーザーごとに、異なるトレーニングに対応する最新のイベントを選択したいと思います。たとえば、特定のユーザーは、2015年や2016年などの基本的な生活援助に関するトレーニングを受けていた可能性がありますが、2016年だけを選択したいと考えています。スコープを使用しようとしましたが、動作しないようです。

誰もがこれを手伝ってくれますか?

+0

どのようなRDBMSを使用していますか? – potashin

+0

私はpostgresを使用しています – jameslagan

答えて

0

のは、彼の最新のイベントを見つけるためにあなたが変数user

を持っているとしましょう:特定の訓練の彼の最新のイベントを見つけるには

user.events.order(:date).first 

を:

user.trainings.find_by(subject: "life_support").events.order(:date).first 

レールチームこの件に関する素晴らしいガイドもあります:http://guides.rubyonrails.org/active_record_querying.html

+0

問題は、私の見解では特定のユーザではなくすべてのユーザのトレーニングを表示してしまうことです。 'code' <%@ user.trainings.each do | training | %><%@ user.trainings.each do | training |%><%@ training.events.order(:date).last.date%> – jameslagan

+0

これは、 %user.id).order(:date());%><%training.events.where(user_id:@ user.id) ).reverse_order.each do | event | %> – jameslagan

+0

また、これをモデル 'code' has_many:trainings、 - > {distinct}、through::eventsで使用しなければなりません – jameslagan

関連する問題