【解決策】railsのdeviseのsign upの遷移先を変更したらエラーが出た

スポンサーリンク
Pocket
LINEで送る

deviseを使って会員登録機能を実装しています。

しかし、デフォルトのままだとroot_pathに飛ばされるのでこれをユーザーマイページに飛ばしたい。

ということで、deviseのコントローラーをいじる

registration_controller.rbの52行目あたり

def after_sign_up_path_for(resource)
  redirect_to 遷移先パス
end

としていました。

ですが、このまま実行すると

Render and/or redirect were called multiple times in this action. Please note that you may only call render OR redirect, and at most once per action. Also note that neither redirect nor render terminate execution of the action, so if you want to exit an action after redirecting, you need to do something like “redirect_to(…) and return”.

スポンサーリンク

 

ん、、、

ソースを読むと、、

こうなっていました。

respond_with resource, location: after_sign_up_path_for(resource)

なるほど!パスだけ渡せばいいのか!

 

ということで修正

def after_sign_up_path_for(resource)
  遷移先パス
end

これで無事エラーがなくなりました。

やっぱソースコード読むのって大事ですね。