Laravel・PHP入門

PHPer初心者

【Ruby】Ruby on Railsでdevise使ってログイン機能を作る

Ruby on Railsでログイン機能を作ります。

何やらとても便利なdeviseというgemがあるそうなのでそれを使用します。

■ deviseをインストールする

vi Gemfile #Gemfileをvimで開く
gem 'devise' #deviseというgemをGemfileに記載する
bundle install #未インストールのgemfileをinstallする

 bundle installすると、gemの初期設定に必要な項目が表示されるので
それに沿って初期設定を実施します。

 

■ deviseの初期設定をする

1.認証URLの設定をする

config/environments/development.rbで下の方のurl_optionsを下記へ編集。

  config.action_mailer.default_url_options = { host: 'localhost:3000' }

私はさくらのVPSを使っていたので、 IPアドレス000.00.000.00:3000と記載しました。

2.rootの行き先を指定する/モデルとコントローラーを作る

すでにrootが設定されていれば必要ありませんので、rake routesで確認します。

rake routes #リクエストに対応する行き先を確認する

f:id:fresh_engineer:20170728214231p:plain

上記は設定されています。
rootの行き先が設定されて
もし設定されてない場合はroutes.rbへ

root 'home#index' #homeは任意です、この後のCとMは合わせます

 を追記ください。

次にコントローラーとモデルを作成します。

rails g controller Home index #規約でControllerの1文字目は大文字

rails g devise home #規約でmodelは小文字

rake db:migrate

 

3.ログインとサインアップへのリンク設置

indexにログインとサインアップの画面を作成します。
<body>〜</body>の間へ作成ください。

Logged in as <strong><%= current_user.email %></strong>.
<%= link_to "Settings", edit_user_registration_path, :class => "navbar-link" %> |
<%= link_to "Logout", destroy_user_session_path, method: :delete, :class => "navbar-link" %>
<% else %>
<%= link_to "Sign up", new_user_registration_path, :class => 'navbar-link' %> |
<%= link_to "Login", new_user_session_path, :class => 'navbar-link' %>
<% end %>

 そして、どのページでもログイン情報が画面に出力するよう、
application.html.erbへ下記を追加します。

<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>

 

■起動を確認する 

rails server -b 0.0.0.0

 サーバーを起動し、localhost:3000へアクセス。
Sign upで自分の任意のアドレスを入力ください。

 

f:id:fresh_engineer:20170728222052p:plain

 

任意のアドレスにメールが届くので、
Confirm my accountをクリックし認証。

f:id:fresh_engineer:20170728222540p:plain

ログイン画面でログインができれば成功です。

 

ちなみにデータはmodel作成時にできたテーブルで確認できるので
mysqlを立ち上げ、use データベース名 -> select * from テーブル名 \G;により
sign up したデータを確認できます。

f:id:fresh_engineer:20170728223030p:plain

メールの認証ができていれば、confirmedの2箇所に
token付与、日時が記載されているはずです。 

 

カスタマイズなどはViewを作成してカスタマイズください。

以上です。

【環境構築】CentOS7にRuby+Railsをインストールする(rbenv使用)

前回VagrantVirtualBoxを使用した仮想環境が完成したので、
この環境にrubyrailsを入れていきます。

色々とインストールしたいのでroot権限で行います。

sudo su #root権限へ

yum update #インストール済パッケージで更新できるものを更新する

一通りupdateしておきます。

yum install rubyだと2.0.0という少々古いバージョンしかinstallできなかったので
今回はrbenvというrubyのバージョン管理ツールを使用します。

rbenvを使用するため、必要なgitを先にインストールします。

yum -y install git 

 gitがインストールできたら、rbenvをcloneして

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv

rbenvのプラグインruby-build」もcloneします。

git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

rbenv単体ではrubyをinstallできません、このプラグインが必要です。

 

rbenvの公式ドキュメントにも記載がありますが、
rbenv用に以下2行を書きかえ、書き換えた.bash_profileを読み直します。

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile

echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

source ~/.bash_profile  #.bash_profileを読み込み

これでインストールできるようになったはずです。
インストールできるrubyのバージョンを確認します。

rbenv install --list

いっぱい出てきたら自分の欲しいバージョン名を指定します。

rbenv install -v 2.3.1 #バージョン指定はお好みで変えてください 

これで問題ないくinstallできればOKです。
(少し時間がかかりますが、Complete!と出てくるはずです)
もし何か足りないというエラーが出てきたら、
足りないものをyum installして、再度上記コマンドをお試しください。

yum install -y openssl-devel readline-devel zlib-devel #一例です

 

ここまでできれば、バージョンを確認します。

ruby -v #rubyのバージョン確認

 自分がinstallしたrubyのバージョンが記載されて入ればOKです。

もしバージョンが指定したものになっていない場合は、

rbenv global 2.3.1 #自分の使用したいバージョンを記載

 rbenvを使用して、切り替えてください。
OSごとバージョンの切り替えをして問題がなければglobal、
今いる位置限定の場合は globalの箇所をlocalへ変更ください。

 

 

Rubyがinstallできたので、最後にRailsもバージョン指定でinstallします。

gem install rails --version="4.2.1" #""内にバージョンを記載

rails -v #railsのバージョン確認

 

 

ここまで出てきた単語と関連ある単語を初心者が簡単に整理してみます。

【環境構築】Vagrant+VirtualBoxを使ってCentOS7の環境構築する

【環境】Max OSX
【構築する環境】Vagrant+VirtualBox+CentOS7

1.VagrantVirtualBoxをそれぞれインストールする

Vagrant by HashiCorp
Downloads – Oracle VM VirtualBox

今回は、Macに合わせてインストールしました。
特に編集する必要もないので、次へを押し続けてインストールを完了します。


VagrantがインストールできたかどうかはMacのターミナルを開き、

vagrant -v #vagrantのバージョン確認

本コマンドで、下記の返答があればOKです。(2017/7/23現在)

Vagrant 1.9.7

VirtualBoxはインストール後Application内にあります。
これでVagrantVirtualBoxのインストールは完了です。

 

2.仮想サーバーを起動・接続する

続いて、ターミナルで操作します。(#部分は説明なので不要です)

mkdir vagrant_centOS #vagrant_centOSフォルダを作成(名前は任意) 

cd vagrant_centOS #vagrant_centOSフォルダへ移動 

vagrant box add centos7.2 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box

#centos7.2というboxを追加

vagrant box add [box名] [URL]で指定しています。

box名とURLはA list of base boxes for Vagrant - Vagrantbox.esこちらで取得できます。

インストールには時間がかかります(私の場合は5分程度でした)

f:id:fresh_engineer:20170723120433p:plain

完了しました。

vagrant init centos7.2 #vagrant init [指定したbox名] // 初回のみ

このコマンドで初期化した後、

vagrant up #vagrantを起動 // 起動時に毎回必要

 vagrantを起動して、

vagrant ssh #vagrantssh接続 // 起動時に毎回必要

接続できました。
ターミナルが下記のようなコマンドになっていれば完了です。

[vagrant@localhost ~]$ 


初期設定が完了したので、今後は下記コマンドを使います。

vagrant up #起動

vagrant ssh #接続

vagrant status #状態確認

 vagrant halt #停止 

vagrant reload #再起動

以上で、環境の構築は完了です。