Sorceryでログイン機能やユーザー登録の機能を実装しているんですが、viewをhamlで書いていたところ、ユーザー登録失敗時にパスワード確認のレイアウトが崩れてしまう現象が起きました。。
上が正常な画面、下がその現象の画面です。
viewのコード(user/new.html.haml)
%h2 ユーザー登録 = form_for @user do |f| .field = f.label :realname, "名前" = f.text_field :realname .field = f.label :username, "ユーザーID" = f.text_field :username .field = f.label :password, "パスワード" = f.password_field :password .field = f.label :password_confirmation, "パスワード確認" = f.password_field :password_confirmation .field = f.label :usertype, "ユーザー区分" = f.select :usertype, User.usertypes_i18n.keys.map {|k| [User.usertypes_i18n[k], k]} .field = f.label :office, "所属事業所" = f.select :office, User.offices_i18n.keys.map {|k| [User.offices_i18n[k], k]} .actions = f.submit "ユーザー登録" %p or = link_to "ログイン", new_session_path
controllerのコード
class UsersController < ApplicationController def new @user = User.new end def show @user = User.find(params[:id]) end def create @user = User.new(user_params) if @user.save redirect_to user_path(@user) else render :new end end private def user_params params.require(:user).permit(:username, :password, :password_confirmation, :usertype, :office, :realname) end end
ちなみに、ユーザー登録画面はパスはもちろんusers/newなんですが、登録に失敗すると(パスワードとパスワード確認に違う値を入力すると)URLがusersになってしまいます(この時点で上のように崩れたviewが表示される)。それは何か関係あるんでしょうか?
そしてそのまま更新を押すと、もちろんRouting errorになります。
このエラーが出ない方法も一緒に教えていただけると助かります。
もちろん明確な答えじゃなくても、ヒントだけでも嬉しいです。(むしろあえてヒントだけの方が勉強になっていいかも,,,,)
どなたかよろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。