LoginSignup
0
0

More than 1 year has passed since last update.

グループ登録機能を追加してみた:改

Last updated at Posted at 2022-03-15

前回deviseを使ってgroup機能の登録を試みたが、中間テーブルに保存されないという現象が起きてしまった。
3時間考えた末、いい解決方法が見つからなかったので、思い切って1から作り直すことに。

今回試みた事

  • group機能の実装はdeviseではなく、rails g model groupを使用する
  • カラムにはパスワードを設定する

手順

まずはモデルの作成

ターミナル
rails g model group

次に必要なカラムを記述。

db/migrate/xxxxx_create_group.rb
class CreateGroups < ActiveRecord::Migration[6.0]
  def change
    create_table :groups do |t|
# 以下の3行を追記
      t.string :group_name,  null: false, default: ""
      t.string :password_digest,  null: false, default: ""
      t.text :note

      t.timestamps
    end
  end
end

ターミナルで以下を実行。

ターミナル
rails db:migrate

次にgroup.rbに以下を記述する。

app/models/group.rb
class Group < ApplicationRecord
  has_secure_password
end

これ一つを記述するだけで、パスワードが暗号化され、ログイン認証用のメソッドであるauthenticateが使用できるという優れもの。

Gem bcrypt

暗号化するためのgemを用意する。
以下のコメントアウトを外す。

gemfile
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 4.0'
# Use Active Model has_secure_password
gem 'bcrypt', '~> 3.1.7'  # ここの部分のコメントアウトを外す

# Use Active Storage variant
# gem 'image_processing', '~> 1.2'

最後にbundle installを実行する。
これでDBにデータが保存される。

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