『Ruby on Rails 5 アプリケーションプログラミング』を学習する15

Ruby on Rails 5アプリケーションプログラミング

Ruby on Rails 5アプリケーションプログラミング

序文

Ruby on Rails 5 アプリケーションプログラミング」学習15日目。
トラブルに巻き込まれて、生活リズムが狂ってしまったのでちょっとだけ。
読者登録ありがとうございます。

GitHub

github.com

進捗

  • 第5章 モデル開発
    • 5.1 データ取得の基本
      (学習時間:1時間)

コード実装部分

↓config/routes.rb

# 省略

  get  'record/find'
  get  'record/find_by'
end

↓app/controllers/record_controller.rb

class RecordController < ApplicationController
  def find
    @cds = Cd.find([2,5,10])
    # ↓発行されるSQL
    # SELECT "cds".* 
    # FROM "cds"
    # WHERE "cds"."id"
    # IN (2, 5, 10)
    render 'yahoo/list'
  end

  def find_by
    @cd = Cd.find_by(label: 'サザナミレーベル')
    # ↓発行されるSQL
    # SELECT  "cds".* FROM "cds" 
    # WHERE "cds"."label" = ? 
    # LIMIT ?  
    # [["label", "サザナミレーベル"], 
    # ["LIMIT", 1]]

    # find_byは1県のみ取得する

    render 'yahoo/show'
  end
end

↓/app/views/yahoo/show.html.erb

<p id="notice"><%= notice %></p>

<p>
  <strong>Jan:</strong>
  <%= @cd.jan %>
</p>

<p>
  <strong>Title:</strong>
  <%= @cd.title %>
</p>

<p>
  <strong>Price:</strong>
  <%= @cd.price %>
</p>

<p>
  <strong>Label:</strong>
  <%= @cd.label %>
</p>

<p>
  <strong>Released:</strong>
  <%= @cd.released %>
</p>

<p>
  <strong>Is_major:</strong>
  <%= @cd.is_major %>
</p>

<%= link_to 'Edit', edit_cd_path(@cd) %> |
<%= link_to 'Back', cds_path %>

実行結果

f:id:yjkym:20180407144557p:plain

感想

今日からモデルの章に突入。
find()メソッドとfind_by()メソッドについて。
ぶっちゃけ基本中の基本の部分。
でもここだけの話、趣味のアプリではめんどくさくて全部find_by_sql()メソッドで処理しちゃってたりする…

ハイ、今日からちゃんと勉強します。

カロリーメイトください。

BGM

健康ランド / 青い果実 www.youtube.com