###前提・実現したいこと
新規追加時に入力エラーの場合のレイアウトを指定したいです。
※現状、application.html.erbが読み込まれます。
###該当のソースコード
def new @user = User.new render layout: 'signup' end def create @user = User.new(user_params) respond_to do |format| if @user.save @user.send_activatin_email flash[:info] = "テキスト" redirect_to root_url else format.html {render :new} end end end
render :new
とした時にrender layout: 'signup'
は読み込まれず、application.html.erbが読み込まれます。format.htmlの書き方の問題でしょうか、、
###追記
format.html { render :new, layout: 'layouts/signup' }
とすることで、singupのレイアウトを読み込むことができました。
しかし、URLが
http://localhost:3000/signup → エラー発生 → http://localhost:3000/users
と変わってしまいます。
###追記
ruby
1get '/signup', to: 'users#signup' 2resources :users
ruby
1# GET /users/new 2 def signup 3 @user = User.new 4 render layout: 'signup' 5 end 6 7 # POST /users 8 # POST /users.json 9 def create 10 @user = User.new(user_params) 11 respond_to do |format| 12 if @user.save 13 @user.send_activatin_email 14 flash[:info] = "テキスト" 15 redirect_to login_path 16 else 17 format.html { render :signup, layout: 'layouts/signup' } 18 format.json { render json: @user.errors, status: :unprocessable_entity } 19 end 20 end 21 end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/03 09:30 編集
2017/07/03 09:32
2017/07/03 09:35
2017/07/03 09:41
2017/07/03 09:48 編集
2017/07/03 09:52
2017/07/03 09:56 編集
2017/07/03 09:56
2017/07/03 09:59
2017/07/03 10:02
2017/07/03 10:15 編集
2017/07/03 10:09
2017/07/03 10:25