質問編集履歴

1

form_tagをform_withに変える作業をしていた際に出た同様の問題について、追記致しました。

2020/04/12 10:36

投稿

punchan36
punchan36

スコア105

test CHANGED
@@ -1 +1 @@
1
- 【Rails】cocoonで複製した項目がうまく保存されない
1
+ cocoonで複製した項目がforbid_login_userに引っ掛かり保存されない
test CHANGED
@@ -176,7 +176,7 @@
176
176
 
177
177
  ### 該当のソースコード(users_controller.rb)
178
178
 
179
- またここで「redirect_to("/users/#{@user.id}")」と設定しているのですが、application_controller.rbに「protect_from_forgery with: :null_session」の一文を入れた直後は該当ページにリダイレクトされますが、それ以降は「forbid_login_user」に引っ掛かってか「/posts/index」にリダイレクトされてしまいます。
179
+ またここで「redirect_to("/users/#{@user.id}")」と設定しているのですが、application_controller.rbに「protect_from_forgery with: :null_session」の一文を入れた直後は該当ページにリダイレクトされますが、それ以降は「/posts/index」にリダイレクトされてしまいます。その際、application_controller.rbのforbid_login_userで設定した"すでにログインしています"のフラッシュも表示されます。
180
180
 
181
181
  ```rails
182
182
 
@@ -313,3 +313,95 @@
313
313
  RubyGems 3.0.3
314
314
 
315
315
  Rails 5.2.3
316
+
317
+
318
+
319
+ ### 追記
320
+
321
+
322
+
323
+ まだ解決していない為、問題のあったcocoonで複製した部分はコメントアウトで一旦消して、form_tagをform_withに変える作業を先に進めておりました。するとここでも、保存ボタンを押しても内容が保存されず、「/posts/index」にリダイレクトされる問題が発生しました(おそらくforbid_login_userによるもの)。
324
+
325
+ ログイン中にはアクセスできないページ(新規登録ページ等)に行こうとしている訳ではないにも関わらず、なぜこのようなリダイレクトになってしまうのかが分かりません…。
326
+
327
+
328
+
329
+ ### 該当のソースコード(users#edit.html.erb)
330
+
331
+
332
+
333
+ ```Rails
334
+
335
+ <%= form_with(model: User, local: true) do |f| %>
336
+
337
+ <p>
338
+
339
+ <%= f.label :ユーザー名 %>
340
+
341
+ <%= f.text_field :name, value: @user.name %>
342
+
343
+ </p>
344
+
345
+ <p>
346
+
347
+ <%= f.label :画像 %>
348
+
349
+ <%= f.file_field :image %>
350
+
351
+ </p>
352
+
353
+ <p>
354
+
355
+ <%= f.label :カバー画像 %>
356
+
357
+ <%= f.file_field :cover_image %>
358
+
359
+ </p>
360
+
361
+ <p>
362
+
363
+ <%= f.label :メールアドレス %>
364
+
365
+ <%= f.email_field :email, value: @user.email %>
366
+
367
+ </p>
368
+
369
+ <p>
370
+
371
+ <%= f.label :性別 %>
372
+
373
+ <%= f.radio_button :sex, :Male %>男
374
+
375
+ <%= f.radio_button :sex, :Female %>女
376
+
377
+ </p>
378
+
379
+ <p>
380
+
381
+ <%= f.label :国籍 %>
382
+
383
+ <%= f.country_select :country, selected: @user.country %>
384
+
385
+ </p>
386
+
387
+ <p>
388
+
389
+ <%= f.label :言語 %>
390
+
391
+ <%= select_tag(:language, options_for_select(languages)) %>
392
+
393
+ </p>
394
+
395
+ <p>
396
+
397
+ <%= f.label :自己紹介 %>
398
+
399
+ <%= f.text_area :introduction, rows: "10", cols: "100", value: @user.introduction %>
400
+
401
+ </p>
402
+
403
+ <%= f.submit "保存" %>
404
+
405
+ <% end %>
406
+
407
+ ```