0
deviseを使用しているルートに問題があります。リダイレクトルーティングの問題を解決する
私のdevise/sessions/new
ビューを変更して、サインインフォームとサインアップフォームの両方を持つようにしました。
すべて正常に動作し、すべてのフィールドが正しく入力されていれば、同じビュー(sign_in)のいずれかのフォームを使用してサインインまたはサインアップできます。しかし、登録フォームにエラーがある場合(電子メールがないか、確認パスワードが間違っている場合)、ユーザーはusers/sign_in
ページにある代わりにhttp://0.0.0.0:3000/users
というURLの「古典的な」デバイスsign_up
ページにリダイレクトされ、エラーが表示されます。
私のルートは以下の通りである:
devise_for :users, controllers: { sessions: "users/sessions"}
as :user do
get 'sign_in', :to => 'devise/sessions#new'
end
マイ登録フォームは、次の宣言している:
<%= form_for(resource, as: resource_name, class: "registrtion-form", url: registration_path(resource_name)) do |f| %>
マイアプリケーションヘルパーはユーザ・リソースを設定:
def resource_name
:user
end
def resource
@resource ||= User.new
end
def devise_mapping
@devise_mapping ||= Devise.mappings[:user]
end