質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.46%
Ruby

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

Ruby on Rails

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

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

Q&A

解決済

2回答

1081閲覧

Ruby データ取得 Rubyの書き方

masaosan18

総合スコア65

Ruby

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

Ruby on Rails

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

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

0グッド

1クリップ

投稿2020/09/09 09:35

rubyの記法が分からずに困っています。

取得したいデータ

・Officeテーブルの全てのデータ
・Office_idを持つ、staffのデータ
・↑で取得したstaffのthankテーブル内の最新データ

書いてみたこと

offices = Office.all staffs = Staff.where(office_id: offices.id) thanks = Thank.order(created_at: :desc).first

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

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

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

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

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

guest

回答2

0

取得したいデータ の説明が 欲しいデータの説明 になっていないのでは?

  1. Officeテーブルの全てのデータ
  2. Office_idを持つ、staffのデータ
  3. ↑で取得したstaffのthankテーブル内の最新データ

という書き方ですと
1 Officeの全データ
2 ある特定のofficd.idのOfficeに属するstaff
3 そのstaffの各々(もしくは特定のstaffの)最新のThanks

が欲しいとよめます。するとSibakenYさんの回答がそれになります。

ですがmasaosan18さんの関連する一連の質問から思うに
「全Officeのデータ」 と 「全Officeの全staffのデータ」 と 「staffのThanksの中でOffice毎に最新のものを全Office分」が欲しいのでは?
途中の質問からは更に「それら全Staffの全Thanks」も 必要なのかもとも見えますが。
かつ、データが欲しいのかそれを(簡単に)JSONにしたいのか、も質問によってバラバラ。 もし最終的に欲しいのがJSONならそこもきちんと書かないと。

正しい質問をしないと正しい回答は得られません

正しい質問に書き直してください

投稿2020/09/19 23:25

winterboum

総合スコア23401

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

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

0

ベストアンサー

Officeテーブルの全てのデータ

これに関しては

offices = Office.all

で問題ないです。

Office_idを持つ、staffのデータ

に関しては

staff = Staff.where(office_id: 1)

みたいにすれば office_idが1のスタッフを取ってくることができます。

ちなみに

ruby

1staffs = Staff.where(office_id: offices.id)

この書き方だと offices.id がおかしいですね、

あくまでofficesは全てのofficeのデータなので、offices.idみたいにはできません

↑で取得したstaffのthankテーブル内の最新データ

に関してはおそらく staff に対して複数の thankが紐づいている感じでしょうか?

であれば

staff.thanks.order(created_at: :desc).first

みたいにすればスタッフに紐づくthnaksの一番新しいものが取得できます。

ちなみに

Thank.order(created_at: :desc).first

この書き方だと全てのthankデータの一番新しいものが取得される感じになります。

投稿2020/09/09 13:30

SibakenY

総合スコア63

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

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

masaosan18

2020/09/10 02:14

offices = Office.all staff = Staff.where(office_id: offices) staff.thanks.order(created_at: :desc).first これでいけるのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問