前提・実現したいこと
link_toを使い、新規登録画面やログイン画面に遷移したいのですが
うまくいきません。
どなたか知恵をお貸しいただけませんでしょうか?
発生している問題・エラーメッセージ
パラメーターのidがパスを受け取っているようなのですが、
これが原因でしょうか?
該当のソースコード
- users_controller.rb
ruby
1class UsersController < ApplicationController 2 def new 3 @users = User.all 4 end 5 6 def show 7 @user = User.find(params[:id]) 8 end 9 10 def create 11 @user = User.new(user_params) 12 if @user.save 13 redirect_to "/", notice: "#ようこそ{@user.name}さん!" 14 else 15 render :new 16 end 17 end 18 19 private 20 21 def user_params 22 params.require(:user).permit(:nickname, :email, :password, :password_confirmation) 23 end 24end
- application.html.haml
haml
1.user-management 2 - if user_signed_in? 3 = link_to "ログアウト", "destroy_user_session_path", class: "logout", method: :delete 4 - else 5 = link_to "ログイン", "new_user_session_path", class: "post" 6 = link_to "新規登録", "new_user_registration_path", class: "post"
- routes.rb
ruby
1Rails.application.routes.draw do 2 devise_for :users 3 root "posts#index" 4 resources :posts 5 resources :users, only:[:new, :show, :create] 6end
追記
- views/devise/registrations/new.html.haml
ruby
1.contents-row 2 .container 3 %h2 4 Sign up! 5 = form_with model: @user, url: user_registration_path, id: 'new_user', class: 'new_user', local: true do |f| 6 = devise_error_messages! 7 8 .field 9 = f.label :name 10 %i (6文字以内) 11 .field__name 12 = f.text_field :name, autofocus: true, maxlength: "6" 13 14 .field 15 = f.label :email 16 .field__address 17 = f.email_field :email 18 19 .field 20 = f.label :password 21 %i (6文字以上) 22 .field__pass 23 = f.password_field :password, autocomplete: "off" 24 25 .field 26 = f.label :password_confirmation 27 .field__pass-confirmation 28 = f.password_field :password_confirmation, autocomplete: "off" 29 30 .actions 31 = f.submit "Sign up" , class: 'sign-btn'
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。