質問編集履歴

9

@teacher = Teacher.new が抜けていたので追加しました

2019/08/02 09:54

投稿

KokiOya
KokiOya

スコア27

test CHANGED
File without changes
test CHANGED
@@ -94,6 +94,8 @@
94
94
 
95
95
  def new
96
96
 
97
+ @teacher = Teacher.new
98
+
97
99
  @place = Place.all
98
100
 
99
101
  @teacher.teachers_places.build

8

pluck(:id)の間違いをただしました

2019/08/02 09:54

投稿

KokiOya
KokiOya

スコア27

test CHANGED
File without changes
test CHANGED
@@ -188,19 +188,15 @@
188
188
 
189
189
 
190
190
 
191
- rails cでのplack[:id]の結果
191
+ rails cでのplack(:id)の結果
192
-
192
+
193
- ```ここに言語を入力
193
+ ```ここに言語を入力
194
-
194
+
195
- irb(main):002:0> Place.pluck[:id]
195
+ irb(main):003:0> Place.pluck(:id)
196
-
196
+
197
- (7.8ms) SELECT "places".* FROM "places"
197
+ (0.4ms) SELECT "places"."id" FROM "places"
198
-
199
- Traceback (most recent call last):
198
+
200
-
201
- 1: from (irb):2
199
+ => [1, 2, 3, 4]
202
-
203
- TypeError (no implicit conversion of Symbol into Integer)
204
200
 
205
201
  ```
206
202
 

7

pluck[:id]の結果を追加

2019/08/02 09:51

投稿

KokiOya
KokiOya

スコア27

test CHANGED
File without changes
test CHANGED
@@ -84,7 +84,7 @@
84
84
 
85
85
 
86
86
 
87
- teacher_controller.rbのconrilmアクションとcreateアクションとStrong Parametersです
87
+ teacher_controller.rbのnewアクションとconrilmアクションとcreateアクションとStrong Parametersです
88
88
 
89
89
  ```ここに言語を入力
90
90
 
@@ -92,6 +92,16 @@
92
92
 
93
93
 
94
94
 
95
+ def new
96
+
97
+ @place = Place.all
98
+
99
+ @teacher.teachers_places.build
100
+
101
+ end
102
+
103
+
104
+
95
105
  def confirm
96
106
 
97
107
  @place = Place.all
@@ -178,4 +188,22 @@
178
188
 
179
189
 
180
190
 
191
+ rails cでのplack[:id]の結果
192
+
193
+ ```ここに言語を入力
194
+
195
+ irb(main):002:0> Place.pluck[:id]
196
+
197
+ (7.8ms) SELECT "places".* FROM "places"
198
+
199
+ Traceback (most recent call last):
200
+
201
+ 1: from (irb):2
202
+
203
+ TypeError (no implicit conversion of Symbol into Integer)
204
+
205
+ ```
206
+
207
+
208
+
181
209
  質問がわかりにくく申し訳ありません。ご回答のほどよろしくお願いします。

6

Strong Parametersを追加しました

2019/08/02 08:06

投稿

KokiOya
KokiOya

スコア27

test CHANGED
File without changes
test CHANGED
@@ -84,9 +84,13 @@
84
84
 
85
85
 
86
86
 
87
- teacher_controller.rbのconrilmアクションとcreateアクションです
87
+ teacher_controller.rbのconrilmアクションとcreateアクションとStrong Parametersです
88
88
 
89
89
  ```ここに言語を入力
90
+
91
+ class TeachersController < ApplicationController
92
+
93
+
90
94
 
91
95
  def confirm
92
96
 
@@ -134,6 +138,22 @@
134
138
 
135
139
  end
136
140
 
141
+
142
+
143
+ private
144
+
145
+
146
+
147
+ def teacher_params
148
+
149
+ params.require(:teacher).permit(places_attributes: [:id], place_ids:[])
150
+
151
+ end
152
+
153
+
154
+
155
+ end
156
+
137
157
  ```
138
158
 
139
159
 

5

題名を変更しました

2019/08/01 13:33

投稿

KokiOya
KokiOya

スコア27

test CHANGED
@@ -1 +1 @@
1
- hidden_fieldでplace_idsの値を使いたい
1
+ 登録確認画面中間テーブルの値 (place_ids)を使いたい
test CHANGED
File without changes

4

誤字がありました

2019/08/01 13:22

投稿

KokiOya
KokiOya

スコア27

test CHANGED
File without changes
test CHANGED
@@ -144,7 +144,7 @@
144
144
 
145
145
  ```ここに言語を入力
146
146
 
147
- "teacher"=>{place_ids"=>["3", "4"]}
147
+ "teacher"=>{"place_ids"=>["3", "4"]}
148
148
 
149
149
  ```
150
150
 
@@ -152,7 +152,7 @@
152
152
 
153
153
  ```ここに言語を入力
154
154
 
155
- "teacher"=>{places_attributes"=>{"0"=>{"id"=>"3"}, "1"=>{"id"=>"4"}}}
155
+ "teacher"=>{"places_attributes"=>{"0"=>{"id"=>"3"}, "1"=>{"id"=>"4"}}}
156
156
 
157
157
  ```
158
158
 

3

teacher.rbの更新 paramsの内容の更新

2019/08/01 12:21

投稿

KokiOya
KokiOya

スコア27

test CHANGED
File without changes
test CHANGED
@@ -72,6 +72,8 @@
72
72
 
73
73
  has_many :places, through: :teachers_places, dependent: :destroy
74
74
 
75
+ accepts_nested_attributes_for :places
76
+
75
77
  validates :place_ids, presence: true
76
78
 
77
79
  end
@@ -142,7 +144,7 @@
142
144
 
143
145
  ```ここに言語を入力
144
146
 
145
- place_ids"=>["3", "4"]
147
+ "teacher"=>{place_ids"=>["3", "4"]}
146
148
 
147
149
  ```
148
150
 
@@ -150,7 +152,7 @@
150
152
 
151
153
  ```ここに言語を入力
152
154
 
153
- places_attributes"=>{"0"=>{"id"=>"3"}, "1"=>{"id"=>"4"}}
155
+ "teacher"=>{places_attributes"=>{"0"=>{"id"=>"3"}, "1"=>{"id"=>"4"}}}
154
156
 
155
157
  ```
156
158
 

2

アクション,viewを更新 アクションに渡っているparamsの追加

2019/08/01 12:16

投稿

KokiOya
KokiOya

スコア27

test CHANGED
File without changes
test CHANGED
@@ -14,13 +14,13 @@
14
14
 
15
15
  <div class="field">
16
16
 
17
- <%= f.label :"指導場所" %>
17
+ <%= f.fields_for :places do |place_f| %>
18
18
 
19
- <%= f.hidden_field :place_ids %>
19
+ <%= f.label :"指導場所" %>
20
20
 
21
- <% @teacher.places.each do |place| %>
21
+ <%= place_f.hidden_field :id %>
22
22
 
23
- <p><%= place.name %></p>
23
+ <p><%= place_f.object.name %></p>
24
24
 
25
25
  <% end %>
26
26
 
@@ -86,7 +86,7 @@
86
86
 
87
87
  ```ここに言語を入力
88
88
 
89
- def confirm
89
+ def confirm
90
90
 
91
91
  @place = Place.all
92
92
 
@@ -108,7 +108,11 @@
108
108
 
109
109
  def create
110
110
 
111
+ @place = Place.all
112
+
111
113
  @teacher = Teacher.new(teacher_params)
114
+
115
+ @teacher.place_ids = params[:teacher][:places_attributes]
112
116
 
113
117
  if params[:back]
114
118
 
@@ -128,7 +132,25 @@
128
132
 
129
133
  end
130
134
 
135
+ ```
131
136
 
137
+
138
+
139
+ アクションに渡っているparamsの内容
140
+
141
+ confirm
142
+
143
+ ```ここに言語を入力
144
+
145
+ place_ids"=>["3", "4"]
146
+
147
+ ```
148
+
149
+ create
150
+
151
+ ```ここに言語を入力
152
+
153
+ places_attributes"=>{"0"=>{"id"=>"3"}, "1"=>{"id"=>"4"}}
132
154
 
133
155
  ```
134
156
 

1

説明を詳しくしました

2019/08/01 10:49

投稿

KokiOya
KokiOya

スコア27

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,6 @@
1
- rails初心者です。Teacher登録確認画面を作っています。確認画面の時にhidden_fieldを用いているのですが、place_idsなどの中間テーブルを使った値が使えません。どのようにすればよろしいでしょうか。
1
+ rails初心者です。Teacher登録確認画面を作っています。確認画面の時にhidden_fieldを用いているのですが、place_idsなどの中間テーブルを使った値が使えず、 validates :place_ids, presence: trueに引っかかり、Teacherを保存することができません。どのようにすればよろしいでしょうか。
2
+
3
+
2
4
 
3
5
 
4
6
 
@@ -58,6 +60,28 @@
58
60
 
59
61
  ```
60
62
 
63
+
64
+
65
+ teacher.rbです
66
+
67
+ ```ここに言語を入力
68
+
69
+ class Teacher < ApplicationRecord
70
+
71
+ has_many :teachers_places, foreign_key: 'teacher_id', dependent: :destroy
72
+
73
+ has_many :places, through: :teachers_places, dependent: :destroy
74
+
75
+ validates :place_ids, presence: true
76
+
77
+ end
78
+
79
+
80
+
81
+ ```
82
+
83
+
84
+
61
85
  teacher_controller.rbのconrilmアクションとcreateアクションです
62
86
 
63
87
  ```ここに言語を入力