2017-04-10 8 views
0

active_recordクエリに問題があります。申し訳ありませんが、私は新しいレールです。ラストチャイルド属性によるフィルタリング

私はモデルのサブスクリプションを持っていますが、それは子サブスクリプションバージョンがあります。ここでは、更新可能なすべての情報を保持しています。

API呼び出しでは、get requestのように、私はサブスクリプションと現在のバージョン(@subscription.subscription_versions.last)のデータをマージし、レスポンスのためにそのマージされたハッシュを与えますが、そのcurrent_versionの値でソートとフィルタリングの問題に直面しました。

私はそれがサブスクリプションが5つのバージョンを持っており、最新の(CURRENT_VERSION)第5回であったとしても、最小値によってすべてのバージョンと並べ替えを取る@subscriptions.joins(:subscription_versions).order('subscription_versions.version') それを行うみてください。

だから誰でも私のサブスクリプションモデルの新しいフィールドを追加せずにそのためのクエリを生成する方法をアドバイスを与えることができますか?

答えて

0

私が正しく理解している場合は、最後のsubscription_versionを返すだけですか?

バージョンがソートされている方法に応じて、あなたがこれを行うことが(これをテストしていません):

@subscriptions.joins(:subscription_versions).order('subscription_versions.version').first 

またはその場合

@subscriptions.joins(:subscription_versions).order('subscription_versions.version').last 
+0

それだけでソートから最初/最後のサブスクリプションを返しますコレクションが、私はそれが最後にいつも並べ替える必要があることを確認してくださいsubsc_version –

+1

ああ、私はあなたの質問を誤解しました。デフォルトでは、Railsは昇順にソートされます。あなたは:descを追加することができます。降順で並べ替えます。 User.order(email::desc) – stoerebink

+0

これで問題は解決しましたか? – stoerebink

関連する問題