質問編集履歴

2

Fiddlerの検証結果を追記しました。

2020/07/21 12:50

投稿

kumamin
kumamin

スコア12

test CHANGED
File without changes
test CHANGED
@@ -285,3 +285,9 @@
285
285
  **▼サーバーのログ(ターミナル)**
286
286
 
287
287
  ![イメージ説明](8f7754e8a60a3abaf81b5dca2d81e694.jpeg)
288
+
289
+
290
+
291
+ **▼Fiddlerの検証結果**
292
+
293
+ ![イメージ説明](a94d997bce1c1554fa61822cc739cb49.jpeg)

1

コードの修正

2020/07/21 12:49

投稿

kumamin
kumamin

スコア12

test CHANGED
File without changes
test CHANGED
@@ -30,7 +30,15 @@
30
30
 
31
31
  ```
32
32
 
33
- ![イメージ説明](240021ce63604858b0bc9f6827c0bc6f.jpeg)
33
+ ![イメージ説明](c930e093a40359306f6c66b211330b9b.jpeg)
34
+
35
+
36
+
37
+ json形式でコントローラーにデータを送りたいのですが、
38
+
39
+ ターミナルのログにはHTMLとして送信されたと書かれてしまっています。
40
+
41
+
34
42
 
35
43
  ### 該当のソースコード
36
44
 
@@ -42,6 +50,30 @@
42
50
 
43
51
  $(function(){
44
52
 
53
+ function buildHTML(review){
54
+
55
+ let html = `<div class="Message_box">
56
+
57
+ <img class="Message_box__User_image" src="/attachments/1aab43602b1af4375a5bdc1eb3ad4ab5756602bd/store/${review.profile_image}/profile_image">
58
+
59
+ <div class="Message_box__Content">
60
+
61
+ <a class="Link Text Message_box__Content__Name" href="/posts_g/8">${review.user_name}</a>
62
+
63
+ <div class="Message_box__Text Text">
64
+
65
+ ${review.content}
66
+
67
+ </div>
68
+
69
+ </div>
70
+
71
+ </div>`
72
+
73
+ return html;
74
+
75
+ }
76
+
45
77
  $('.New_r').on('submit', function(e){
46
78
 
47
79
  e.preventDefault();
@@ -60,18 +92,32 @@
60
92
 
61
93
  dataType: 'json',
62
94
 
95
+ format: 'json',
96
+
63
97
  processData: false,
64
98
 
65
99
  contentType: false
66
100
 
67
101
  })
68
102
 
69
- .done(function(review){
103
+ .done(function(data){
70
-
104
+
71
- console.log(review)
105
+ let html = buildHTML(data);
106
+
107
+ $('.Reviews').append(html);
108
+
109
+ $('.Textbox_r').val('');
110
+
111
+ $('.Submit_r').prop('disabled', false);
72
112
 
73
113
  })
74
114
 
115
+ .fail(function() {
116
+
117
+ console.log('error');
118
+
119
+ });
120
+
75
121
  })
76
122
 
77
123
  })
@@ -86,13 +132,21 @@
86
132
 
87
133
  class ReviewsController < ApplicationController
88
134
 
135
+
136
+
137
+ def index
138
+
89
- before_action :set_user
139
+ @user = User.find(params[:user_id])
140
+
141
+ end
90
142
 
91
143
 
92
144
 
93
145
  def create
94
146
 
147
+ @user = User.find(params[:user_id])
148
+
95
- @review = @user.reviews.create(review_params)
149
+ @review = @user.reviews.new(review_params)
96
150
 
97
151
  if @review.save
98
152
 
@@ -106,7 +160,7 @@
106
160
 
107
161
  @reviews = @user.reviews.includes(:user)
108
162
 
109
- render :show
163
+ render :index
110
164
 
111
165
  end
112
166
 
@@ -114,31 +168,17 @@
114
168
 
115
169
 
116
170
 
117
- def show
118
-
119
- @user = User.find(params[:id])
120
-
121
- end
122
-
123
-
124
-
125
171
  private
126
172
 
127
173
 
128
174
 
129
175
  def review_params
130
176
 
131
- params.permit(:content).merge(user_id: current_user.id)
177
+ params.require(:review).permit(:content).merge(user_id: current_user.id)
132
-
178
+
133
- end
179
+ end
134
-
135
-
136
-
137
- def set_user
180
+
138
-
139
- @user = User.find(params[:id])
181
+
140
-
141
- end
142
182
 
143
183
  end
144
184
 
@@ -192,12 +232,34 @@
192
232
 
193
233
  json.user_name @review.user.name
194
234
 
235
+ json.profile_image @review.user.profile_image_id
236
+
195
- ```
237
+ ```
238
+
239
+
240
+
241
+ **▼routes.rb**
242
+
243
+ ```ruby
244
+
245
+ resources :users do
246
+
247
+ resources :reviews, only: [:index, :create]
248
+
249
+ end
250
+
251
+ ```
252
+
253
+
254
+
255
+
196
256
 
197
257
 
198
258
 
199
259
  ### 試したこと
200
260
 
261
+
262
+
201
263
  以下の内容を確認したところ、間違いは見つかりませんでした。
202
264
 
203
265
 
@@ -216,10 +278,10 @@
216
278
 
217
279
  **▼rails routesの結果(ターミナル)**
218
280
 
219
- ![イメージ説明](c9363ea9e004714f76d1f13fb570443e.jpeg)
281
+ ![イメージ説明](2d7d72e73d41fd44be30abe3f42c39f2.jpeg)
220
282
 
221
283
 
222
284
 
223
285
  **▼サーバーのログ(ターミナル)**
224
286
 
225
- ![イメージ説明](663765951ef89b279f1b91c82edc75fc.jpeg)
287
+ ![イメージ説明](8f7754e8a60a3abaf81b5dca2d81e694.jpeg)