🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

936閲覧

1:nでn側の最新のみを取得したい

KOO_

総合スコア58

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2020/01/06 08:21

現在1:nでアソシエーションを組んでいるプログラムがあります。

whereにて条件を設定し、以下のように

statu = "見込"

とあるもののみを表示する設定にしております。
この仕様を少し変更したいのですが、やり方がわからないのでご教示頂けないでしょうか?

@type = params[:type] case @type when "call_look" then @calls = Call.where(statu: "見込") end

現状だと、上記"見込"は全て抽出されます。
この仕様を『最新の投稿が見込みのもののみ表示』する結果に変えたいです。

ご教示よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

winterboum

2020/01/06 08:29

わかりにくいです。 1:n の二つのモデルの関連定義部分を掲示してください それと、 最新の投稿 の定義を。 1:nのnの最新が見込のものの1を選び出すということですか? 1:nのnの最新が見込のもののnの方の最後のを選び出すということですか?
KOO_

2020/01/06 08:46

失礼しました。 1:nは@customers:@callsとなっており、 belongs_to :customer has_many:calls で定義しております。 逓信の定義については、 →1:nのnの最新が見込のもののnの方の最後のを選び出すということですか? こちらが正しいものとなります。 例えば、上から登録が古い順に 見込 見込みじゃない 見込 とあった場合、最新の見込みだけ取得し、 見込 見込みじゃない とあった場合、最新は見込ではないので、抽出しない設定にしたく存じます。 説明下手ですみません。よろしくお願い致します。
winterboum

2020/01/06 11:18

うん、そういう具体例があるとこういうややこしい時には間違えないですね。 ちと厄介な式になるので時間下さい。 誰かが答えてくれるかも、ですが。 あ、 取り込んでからrubyで更に絞る、でもよいのかな?
guest

回答1

0

ベストアンサー

生SQLだと
SELECT * FROM calls WHERE statu = '見込' AND id in (SELECT MAX(id) FROM calls GROUP_BY customer_id);
こんなかな、と思うのですが、railsでとり込むには、、、、
Call.where(statu: '見込'). where("id IN (SELECT MAX(id) FROM calls GROUP_BY customer_id))
かなぁ

投稿2020/01/06 11:36

winterboum

総合スコア23567

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問