0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ジャンル別に投稿・チャットできるようなアプリ作ってみた〜ログインページ編〜

Last updated at Posted at 2020-08-30

これから個人アプリの機能一つ一つをどのように作成したか、記事にしていきたいと思います。
おかしいところあってもご容赦ください。
又はコメントにご指摘くださるとありがたいです。

:sunny: ログインページ

スクリーンショット 2020-08-01 23.01.33.png
スクリーンショット 2020-08-01 23.05.10.png

ログインには、gem 'devise'を使用しました

Gemfile
# ログインやユーザ登録機能に便利
gem 'devise'

ターミナルでbundle installe

% bundle install

まあ、機能としては大体deviseのものをそのまま使っています。
ただ、deviseの登録ってメールアドレスとパスワードなんですよね。
ということで、登録する際は、名前も登録してもらうようにしました。

:star: 登録画面

app/views/devise/registrations/new.html.haml
.new-header
  = render "devise/shared/error_messages", resource: resource
.middle
  .middle__login
    .middle__login__top
      %p.middle__login__top__text
        登録しちゃう?( ̄▽ ̄)
    .middle__login__bottom
      .middle__login__bottom__form
        = form_with(model: @user, url: user_registration_path,local: true,method: :post) do |f|
          .middle__login__bottom__form__box
            = f.text_field :name, autofocus: true, autocomplete: "name", class: "middle-show__login__bottom__form__box__name", id: "form", placeholder: "お名前は?",required:"required"
          .middle__login__bottom__form__box
            = f.email_field :email, autocomplete: "email", class: "middle__login__bottom__form__box__address", id: "form", placeholder: "メールアドレスは?",required:"required"
          .middle__login__bottom__form__box
            = f.password_field :password, autocomplete: "new-password", class: "middle__login__bottom__form__box__password", id: "form", placeholder: "パスワードは英数字6文字以上で",required:"required"
          .middle__login__bottom__form__box
            = f.password_field :password_confirmation, autocomplete: "new-password", class: "middle__login__bottom__form__box__password-second", id: "form", placeholder: "パスワードもう一回!",required:"required"
          .actions
            = f.submit "これで君も仲間だ!",class: "middle__login__bottom__form__button__submit"
.new-footer
  = render "devise/shared/links"
app/controllers/users/registrations_controller.rb
class Users::RegistrationsController < Devise::RegistrationsController

  # GET /resource/sign_up
  def new
    super
  end

  def create
    @user = User.new(user_params)
    if @user.valid?
      @user.save
      sign_in(:user,@user)
      redirect_to root_path
    else
      render :new
    end
  end

  def edit
    
  end

  private

  def user_params
    params.require(:user).permit(:name,:email,:password,:password_confirmation)
  end

  # editでパスワード無効で変更するための記述
  def update_resource(resource, params)
    resource.update_without_password(params)
  end

end

登録段階では、特別なことはしてないんですよね。

:star: ログインページ

app/views/devise/sessions/new.html.haml
.index-header
.main
  .main__login
    .main__login__top
      %p.main__login__top__text
        ようこそ♪( ´▽`)
    .main__login__bottom
      .main__login__bottom__form
        = form_for(resource, as: resource_name, url: session_path(resource_name)) do |f|
          .main__login__bottom__form__box
            = f.email_field :email, autofocus: true, autocomplete: "email",class: "main__login__bottom__form__box__address", id: "form", placeholder: "メールアドレスよろ", required:"required"
          .main__login__bottom__form__box
            = f.password_field :password, autocomplete: "current-password",class: "main__login__bottom__form__box__password", id: "form", placeholder: "パスワードよろ", required:"required"
          %label.main__login__bottom__form__button 
            = f.submit class: "main__login__bottom__form__button__submit", value: "いざゆかん!"
.index-footer
  %h6.guide
    = render "devise/shared/links"
app/controllers/users/sessions_controller.rb
class Users::SessionsController < Devise::SessionsController
  # GET /resource/sign_in
  def new
    super
  end

end

ログイン画面はdeviseの機能をそのままに見た目変えた感じです。

私が作成時に知ったこと
autofocus: true
これは自動フォーカスを意味しており、ページを開いたらそこにすぐに入力できるようにするというコード

ログイン・登録はあまり特別なところはないですね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?