【Rails】ユーザー登録時に行うメールアドレス認証機能の実装方法

2022年9月24日 14:24
はじめに ユーザー登録/解除やログイン/ログアウトといった認証機能の導入に「devise」というGemを使っている人は多いと思います。「devise」では以下のように記述するだけで、ユーザー登録時に確認メールを送付しメールアドレス認証を行う機能を追加することができます。 app/models/user.rb r ...

【Rails】モデルに列挙型(enum)を定義し、使いこなす方法

はじめに Railsはモデルでカラム名と同名の列挙型(enum)を定義することで、カラムと列挙型の変数を紐付けることができます。カラムと列挙型の変数を紐付けると、カラムに対して様々な便利な使い方ができるようになります。 本記事では、モデルに列挙型(enum)を定義し、使いこなす方法について説明します。 モデルに ...

【Rails】Rakeタスクの基本情報と作成・実行方法

はじめに Railsには標準でRakeというGemが同梱されています。RakeはRubyで実装されたMake(UNIX系のOSで使用できるコマンド)のようなビルド作業を自動化するツールです。Ruby Make、略してRakeというわけですね。 <iframe class="hatenablogcard" sty ...

【Rails】devise-two-factorを使った2段階認証の実装方法【初学者】

2022年6月16日 18:22
はじめに Railsアプリで2段階認証を実装するには、「rotp」というGemを使う方法の他に、「devise-two-factor」というGemを使う方法があります。「devise-two-factor」はその名の通り、IDとパスワードによる認証を実装する「devise」というGemの拡張機能です。 本記事で ...

【Rails】rotpを使った2段階認証の実装方法【初学者】

2022年6月16日 18:22
はじめに 昨今はIDとパスワードによる認証だけでなく、ワンタイムパスワードによる2段階認証を導入するWebアプリが増えてきました。Railsで作成したWebアプリでも、IDとパスワードによる認証に加えて2段階認証を導入するニーズが高まっています。 本記事では、IDとパスワードによる認証に加えて、「rotp」とい ...

【Rails】deviseを使った認証機能の実装【初学者】

はじめに Railsアプリに認証機能を導入するには「devise」というGemを使う方法が最も簡単です。「devise」は認証に係る機能をほとんどコードを書くことなく実装できる反面、処理がブラックボックス化されており、全容が把握しづらいというデメリットがあります。Railsで初めて認証機能を導入する場合、まずは ...

【Rails】IDとパスワードによる認証機能の実装【初学者】

2022年6月16日 18:21
はじめに 大抵のWebアプリでは、ユーザー登録/解除、ログイン/ログアウトといった認証機能を持っています。Railsには簡単に認証機能を導入できる「device」というGemが用意されています。「devise」は多くのRailsアプリで使われている実績のあるGemですが、「devise」を使わなくても比較的簡単 ...

【Rails】Railsプロジェクトの新規作成【初学者】

はじめに Ruby on Rails(または単にRails)は、Rubyというプログラミング言語で設計・開発されたWebアプリケーションフレームワークです。一般的に、Webアプリケーションをイチから作成するには膨大な量のコードを書く必要があります。Webアプリケーションフレームワークは、Webアプリケーション開 ...

【Rails】Railsアプリのデバッグ《マルチデバイス篇》

2022年6月16日 18:26
はじめに 近年のWebアプリはレスポンシブ対応が当たり前になっています。最低でもPCとスマートフォンに対応したデザイン、ときにはその中間のタブレットに対応したデザインなんかも作成する必要があります。 Webアプリの開発はPCを使って行うのでPCでのデバッグは簡単ですが、スマートフォンやタブレットなどの別端末での ...

【Rails】Railsアプリのデバッグ《Better Errors篇》

2022年6月16日 18:25
はじめに Railsアプリの開発中になんらかのエラーが発生すると、デフォルトでは以下のような画面が表示されます(画像をクリックすると拡大します)。 <a class="gallery" data-group="gallery" href="https://i.imgur.com/V9lx7Iy.png"><im ...