teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

修正

2017/05/11 03:42

投稿

innjera
innjera

スコア132

title CHANGED
@@ -1,1 +1,1 @@
1
- Rails : wheremodelの絞り方
1
+ Rails : where/modelの絞り方
body CHANGED
@@ -8,13 +8,16 @@
8
8
  lesson_id: 24 #外部キー
9
9
  body: "申し込みを希望します",
10
10
  ```
11
- `lesson`は`adviser`が`adviser has_many lessons`として複数所有していて、個別の`lesson`に`message(外部キーとしてlesson_idを持つ)`が関連つけられています。つまりは以下の通り。
11
+ `lesson`は`adviser`が`adviser has_many lessons`として複数所有していて、個別の`lesson`に`message(外部キーとしてlesson_idを持つ)`が関連つけられています(`lesson has many messages`)。つまりは以下の通り。
12
12
  ```ruby
13
13
  #@adviserはたくさんいるadviserの中の1人とします
14
14
  @adviser.lessons.ids => [1, 2, 3, 24]
15
15
  ```
16
16
 
17
- `message`を`index`で表示する際に、`message`を上記の例で言えば、`@adviser.lessons.ids`の中に含まれている`lesson`に関連つけられている`message`を全て抜き出す(@message.lesson_idが@adviser.lesson.idsに含まれてい)といった場合の`controller`の`index メソッド`での`where`以下の書き方がわからず、ご教示頂けると助かります。
17
+ `message`をadviserの画面の`index`で表示する際に、上記の例で言えば、`@adviser.lessons.ids`の中に含まれている`lesson`に関連つけられている`message`を全て抜き出す(@message.lesson_idが@adviser.lesson.idsに含まれていれば対象)と場合の`message_controller`の`index メソッド`での`where`以下の書き方がわからず、ご教示頂けると助かります。
18
+
19
+ つまり、`adviser`が複数所有する`lesson`に対して発せられた`message`全てを取ってきたい、との意図です。
20
+
18
21
  ```ruby
19
22
  def index
20
23
  @user = current_user