0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

テーブルのデータをビューに表示させる方法(Ruby on Rails)

Last updated at Posted at 2021-04-25

#プログラミング学習のための備忘録
2021/04/25
Ruby on Railsで資産管理アプリを作成しています。
備忘録として、作成したテーブルのデータをWebページに表示させる流れをまとめました。

#コントローラを作成しよう
アクションを定義するためのコントローラとビューファイルを作成します。以下のコマンドを実行する。

ターミナル
$ rails g controller dividends index

#テーブルに保存されたデータをビューに表示しよう
以下のステップを踏むことで、テーブルに保存されたデータをビューに表示することができる。
・コントローラのアクションで、モデルからテーブルのデータを取得する。
・受け取ったデータを変数に代入する。
・変数をビューに表示させる。

#テーブルのデータを取得する
コントローラのアクションで、モデルからテーブルのデータを取得する処理を定義する。今回は、テーブルに保存されているデータ全てを取得する。テーブルに保存されている全てのデータを取得する場合、モデル名.allで取得することができる。
取得したデータをdividendsという変数に代入する。

dividends_controller.rb
class DividendsController < ApplicationController
  def index
    @dividends = Dividend.all
  end
end

#ビューに表示させる
eachメソッドを用いて、取得したデータの内、nameカラムのデータを全て表示させる。

index.html.erb
<div class="main posts-index">
  <div class="container">
    <% @dividends.each do |dividend| %>
      <div class="dividends-index-item">
          <div class="dividend-name">
            <%= dividend.name %>
          </div>
      </div>
    <% end %>
  </div>
</div>

テーブルに保存されたデータをビューに表示するための処理は以上になります。最後に、指定のURLにアクセスした時に、ビューファイルを表示させるようにルーチングを追加する。

route.rb
Rails.application.routes.draw do
  get "/dividends/index" => "dividends#index"  

  # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
end

#結果
今回は、仮のデータをコンソールで入力してみました。無事に銘柄名が表示されました!

スクリーンショット 2021-04-25 22.42.43.png

次にやること

データを入力できるフォームを作成する!

#参考文献
https://qiita.com/Hal_mai/items/aed97a6aba2293450a74

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?