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