参考書を読んだメモ : 独習Ruby on Rails 3章

独習Ruby on Rails

  • セールしていたので Kindle で買いました
  • せっかく買ったので勉強のために読んだメモ取っていきます

Rails の軌道と簡単なアプリケーション構築

Rails フレームワークの実装と Rails の起動

Rails フレームワークの生成

rails new hoge
  • -dオプションでデータベースを指定できる

Rails の起動

rails s

簡単な Rails アプリケーションを構築する

Web アプリケーションとは

  • クライアントからのリクエストを受け、レスポンスを返す仕組み
  • 1回のHTTPリクエストに対して1回のHTTPレスポンスを返す
  • Rails では クライアントから URI(URL + 該当するリソース)宛に発信されたHTTPリクエストを, コントローラーが受け取りHTTPレスポンスを返す

アプリケーションの生成

  • コントローラーの生成
rails g controller greetings index
  • index アクションが設定されている
    • アクションとは、コントローラークラスのインスタントメソッドに相当する
    • コントローラーがHTTPリクエストを取得してその要求を処理するために利用される
  • 生成された erb ファイルをビューテンプレートと呼ぶ
  • config/routes.rb にはルートが記述されている
get "greetings/index"
# これは
# get "greetings/index", "greetings#index"
# の省略である
  • HTTPメソッド "URI" "コントローラー#アクション"
  • リソースデータはモデルを通じてデータベースで管理する
    • リソースの種類ごとにテーブルがある
  • モデル生成を行うとdb/migrate以下にマイグレーションファイルが生成される
    • これをもとにデータベースのテーブルを生成する
rails db:migrate
  • 正しく作られたかどうか db/schema.rb (スキーマ情報) で確認できる
  • 全データの表示
Book.all
  • Book モデルの全データを表示している
  • view の <% 〜 %>で囲まれた部分は Ruby のコード
<%= render 'from', book: @book %>
  • render はビューを出力するためのメソッド
  • 部分テンプレートを出力している
  • 部分テンプレートは form.html.erb のように をつけることで他のテンプレートと区別される
  • params は受信パラメータのオブジェクト
params.require(:book).permit(:title, :description)
  • Book.new などで生成したインスタンスをテーブルに保存するためには save メソッドを用いる必要がある
  • before_action でアクションの実行前に実行するメソッドを記述できる
before_action :set_book, only: [:show, :edit, :update, :destroy]