deviseとは?
deviseとは、railsによるアプリケーション開発を楽にしてくれるGemの一種。
Gemというのはrailsでの開発を楽にしてくれるソフトウェアたちのことを指す。
インストールすると使えて、オープンソース(=誰でも使える)。
railsを使う人たちが作ってくれたもので、
このGemはこんなことができるよ、こっちのGemはこれができるよ、
みたいな感じに、機能別にたくさんある。
それを使えば面倒な工程を省くことができますよ、もしくは簡単になりますよ、
みたいな「便利ツール」のようなもの。
それがRailsにおけるGemであり、
deviseはそのGemの一種、ということ。
railsでアプリ開発を行う際よく書かれるメソッドや動作を、
インストールしたGemたちが代わりにやってくれたりします。
まず、railsにおける動作についてですが、基本的には
ルーティング→コントローラー→ビュー の順番で動きます。
普通はルーティングで任意のパスとコントローラー名、アクション名を指定するが、
deviseを使えばそれらのルーティングおよびビューまでを自動的に生成してくれる。
よって、上記のように
deviseを使った場合はコントローラーとアクションの定義の必要がなくなるので
コントローラーファイルは生成されない。(正確にはdeviseの中に組み込まれている)
ファイルがないので自分で編集ができない。
というか、編集の必要がない。
① devise をインストール
② $ rails g devise モデル名 をターミナルで入力すると、下記のことを自動でしてくれる
・モデルの生成
・ルーティングに devise_for : users を追記
devise_for : users
「こういう動作をしたい時にこのパスにしましょう。
このパスに対してはこのコントローラーとこのアクションを使いましょう。
それによって表示されるビューも作っておきます」
deviseはログイン機能に関するクラスやルーティングの生成をしてくれるので
投稿アプリなんかをつくる時に便利ですね。