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

質問編集履歴

1

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

2020/04/12 10:36

投稿

punchan36
punchan36

スコア105

title CHANGED
@@ -1,1 +1,1 @@
1
- 【Rails】cocoonで複製した項目がうまく保存されない
1
+ cocoonで複製した項目がforbid_login_userに引っ掛かり保存されない
body CHANGED
@@ -87,7 +87,7 @@
87
87
  ```
88
88
 
89
89
  ### 該当のソースコード(users_controller.rb)
90
- またここで「redirect_to("/users/#{@user.id}")」と設定しているのですが、application_controller.rbに「protect_from_forgery with: :null_session」の一文を入れた直後は該当ページにリダイレクトされますが、それ以降は「forbid_login_user」に引っ掛かってか「/posts/index」にリダイレクトされてしまいます。
90
+ またここで「redirect_to("/users/#{@user.id}")」と設定しているのですが、application_controller.rbに「protect_from_forgery with: :null_session」の一文を入れた直後は該当ページにリダイレクトされますが、それ以降は「/posts/index」にリダイレクトされてしまいます。その際、application_controller.rbのforbid_login_userで設定した"すでにログインしています"のフラッシュも表示されます。
91
91
  ```rails
92
92
  before_action :authenticate_user, {only: [:index, :show, :edit, :update]}
93
93
  before_action :forbid_login_user, {only: [:new, :create, :login_form, :login]}
@@ -155,4 +155,50 @@
155
155
 
156
156
  ruby 2.6.4p104
157
157
  RubyGems 3.0.3
158
- Rails 5.2.3
158
+ Rails 5.2.3
159
+
160
+ ### 追記
161
+
162
+ まだ解決していない為、問題のあったcocoonで複製した部分はコメントアウトで一旦消して、form_tagをform_withに変える作業を先に進めておりました。するとここでも、保存ボタンを押しても内容が保存されず、「/posts/index」にリダイレクトされる問題が発生しました(おそらくforbid_login_userによるもの)。
163
+ ログイン中にはアクセスできないページ(新規登録ページ等)に行こうとしている訳ではないにも関わらず、なぜこのようなリダイレクトになってしまうのかが分かりません…。
164
+
165
+ ### 該当のソースコード(users#edit.html.erb)
166
+
167
+ ```Rails
168
+ <%= form_with(model: User, local: true) do |f| %>
169
+ <p>
170
+ <%= f.label :ユーザー名 %>
171
+ <%= f.text_field :name, value: @user.name %>
172
+ </p>
173
+ <p>
174
+ <%= f.label :画像 %>
175
+ <%= f.file_field :image %>
176
+ </p>
177
+ <p>
178
+ <%= f.label :カバー画像 %>
179
+ <%= f.file_field :cover_image %>
180
+ </p>
181
+ <p>
182
+ <%= f.label :メールアドレス %>
183
+ <%= f.email_field :email, value: @user.email %>
184
+ </p>
185
+ <p>
186
+ <%= f.label :性別 %>
187
+ <%= f.radio_button :sex, :Male %>男
188
+ <%= f.radio_button :sex, :Female %>女
189
+ </p>
190
+ <p>
191
+ <%= f.label :国籍 %>
192
+ <%= f.country_select :country, selected: @user.country %>
193
+ </p>
194
+ <p>
195
+ <%= f.label :言語 %>
196
+ <%= select_tag(:language, options_for_select(languages)) %>
197
+ </p>
198
+ <p>
199
+ <%= f.label :自己紹介 %>
200
+ <%= f.text_area :introduction, rows: "10", cols: "100", value: @user.introduction %>
201
+ </p>
202
+ <%= f.submit "保存" %>
203
+ <% end %>
204
+ ```