Ruby on Rails

【Ruby on Rails】チュートリアル 「第7章 ユーザ登録」をやってみた

Ruby on Rails チュートリアルの第7章のメモです。第7章ではWebアプリケーションに欠かせないユーザ登録機能を実装していきます!アカウントを有効するサインアップ機能やRESTアーキテクチャを学ぶことができます!

第7章 ユーザー登録 | Rails チュートリアル

Railsチュートリアル第7章をやってみた

Railsの3つの環境

  • テスト環境(test)
  • 開発環境(development)
  • 本番環境(production)
    Herokuは本番用サイトのプラットフォームなので、実行されるアプリケーションはすべて本番環境

Sassのミックスイン機能

CSSのグループをパッケージ化して複数の要素に適用することができる

cannot load such file -- bcryptというエラーが表示されユーザのshow画面が表示されない場合

bcryptをGemfileに追加した場合、rails severを再起動しないといけないらしい

Railsのデバッガー

コードの途中にdebuggerといれるだけで起動
rails serverの画面でdebuggerを挿入した時点での変数などをコンソールで確認できる

データベースのリセット

bundle exec rake db:migrate:reset

リソースを追加してRESTfulアクション

config/routes.rbに以下を設定

Rails.applicatoin.routes.draw do
  ...
  resources :users
end

すると、GETやPOSTのルーティングを自動的に作ってくれる

Railsのフォーム

form_forというヘルパー関数を使用する

<%= form_for(@user) do |f| %>
  <%= f.label :name %>
  <%= f.text_field :name %>

  <%= f.label :email %>
  <%= f.email_field :email %>

  <%= f.label :password %>
  <%= f.password_field :password %>

  <%= f.label :password_confirmation, "Confirmation" %>
  <%= f.password_field :password_confirmation %>

  <%= f.submit "Create my account", class: "btn btn-primary" %>
<% end %>

コントローラでオブジェクトをメモリ上に生成してからビューにレンダリングしている
FuelPHPやCakePHPと違いビューで空判定などしなくてよいため、キレイに書けそう

RailsでPOSTパラメータを扱う際の注意点

上記フォームをsubmitすると、コントローラ上でparams[:user]とするとPOST変数にアクセスできる
しかし、そのままUser.new(prams[:user])とするのは危険なので、許可するカラムを制限する関数をかます

RailsにおけるRedirect処理

redirect_to @userredirect_to user_url(@user)と等価
なぜこのように動作するのか??

Railsの本番環境でのSSL

メールアドレスやパスワードを平文で送信するのはセキュリティ上の欠陥となってしまう
Secure Socket Layer(SSL)を利用する
RailsにおけるSSLの有効化は簡単で、config/environment/production.rbを以下のように修正

config.force_ssl = true

本番環境用のWebサーバー

Herokuのデフォルトでは、Rubyだけで実装されたWEBrickというWebサーバを使用
WEBrickをPumaに置き換える

Ruby on Rails チュートリアル 「第7章 ユーザ登録」のまとめ

  • debugメソッドを使うことで、役立つデバック情報を得られる
  • Sassのmixin機能を使うと、CSSのルールをまとめて再利用できる
  • Railsには3つの環境がある
    • 開発環境、テスト環境、本番環境
  • Gravatarを使うと、ユーザーのプロフィール画像を簡単に表示できるようになる
  • form_forヘルパーは、Active Recordのオブジェクトに対応したフォームを生成する
  • flash変数を使うと、一時的なメッセージを表示できるようになる

第7章は2時間ぐらいかかった
ユーザ登録なのでバリデーション周り、テスト周りをしっかりしなければならない
Ruby on Rails チュートリアル 第7章までかかった合計時間は10.5時間

続きの記事はこちら!
Ruby on Rails チュートリアル 「第8章 ログイン、ログアウト」をやってみた

Ruby on Railsのおすすめ書籍はこちら!


-Ruby on Rails