Railsでマッチングサービスを作成中です。
ユーザー登録のページなのですが、
成功した場合も失敗した場合もページは移動するのですが、どちらの場合もflashメッセージが表示されません。(登録はできます。)
どうすればflashメッセージが表示されるのでしょうか?
以下関係がありそうなコードです。
deviseは使っていません。
Gemfileには、jquery-railsをインストール済みです。
routes.rb
Rails.application.routes.draw do resources :users post '/users/new', to: 'users#create', as: :create end (rails routesと打つと、new_user GET /users/new(.:format) users#new と表示されます。)
users_contoroller.rb
class UsersController < ApplicationController def new @user = User.new render layout: 'not_login' end def create user = User.new(user_params) if user.save redirect_to sign_in_path, success: 'ユーザー登録しました' else redirect_to new_user_path, danger: 'ユーザー登録に失敗しました' end end private def user_params params.require(:user).permit(:email,:password) end end
new.html.erb
<h3>ユーザー登録</h3> <%= form_for @user, url: new_user_path do |f| %> <div class="field"> <%= f.label :"メールアドレス" %> <%= f.email_field :email %> </div> <div class="field"> <%= f.label :"パスワード" %> <%= f.password_field :password %> </div> <div class="actions"> <%= f.submit "登録" %> </div> <% end %> <div class="login_link"> <p>アカウントをお持ちですか? <%= link_to 'ログインする',sign_in_path %></p> </div>
not_login.html.erb
<!DOCTYPE html> <html> <head> <title>マッチング</title> <%= csrf_meta_tags %> <%= csp_meta_tag %> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> </head> <body> <% flash.each do |key, value| %> <p class = 'alert alert-<%= key %>'><%= value %></p> <% end %> <%= yield %> <script> $(function(){ $('.alert').slideUp(3000); }); </script> </body> </html>
layout.scss
.alert{ color: white; text-align: center; position: fixed; top: 0; right: 0; left: 0; height: 40px; &-success{ background-color: #2d8ad6; } &-danger{ background-color: #ff2803; } }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/11/14 16:24
2020/11/18 12:45