Rails データベースの値をjsonで出力する

  • 作成日 2020.09.28
  • 更新日 2020.12.01
  • rails
Rails データベースの値をjsonで出力する

Railsでsqliteにあるテーブルの値をjsonで出力するまでの手順を記述してます。 railsはwindows10で動作してます。

環境

  • OS windows10 pro 64bit
  • ruby 2.7.1
  • rails 6.0.3.2

※windows10にrubyをインストールして実行する手順はこちら
※windows10にRuby on Railsをインストールして利用する手順はこちら

Controller作成

まずは、下記のコマンドでcontroller「sample」を作成します。

rails generate controller sample index

json表示

テーブル「cars」にあるデータをjsonで出力します。

jsonデータを表示させるために、
「app\controller」に 生成された「 sample _controller.rb 」を下記のとおりに編集します。

class SampleController < ApplicationController
  def index
    @cars = Car.all
    render json: @cars   
  end
end

ブラウザから http://プライベートIP or サーバーアドレス:3000/sample/indexにアクセスすると、jsonデータが作成されていることが確認できます。

htmlとして出力する場合は、「 sample _controller.rb」を下記のとおりに編集します。

class SampleController < ApplicationController
  def index
    @cars = Car.all

    respond_to do |format|      
      format.html
      format.json {render json: @cars}    
    end    
  end
end

次に、「app\views\sample」フォルダ配下にある「index.html.erb」を下記の内容で作成します。

<table>
    <thead>
        <tr>
            <th>name</th>
            <th>price</th>
        </tr>
    </thead>

    <tbody>
        <% @cars.each do |car| %>
            <tr>
            <td><%= car.name %></td>
            <td><%= car.price %></td>
            </tr>
        <% end %>
    </tbody>
</table>

ブラウザから http://プライベートIP or サーバーアドレス:3000/sample/indexにアクセスすると、jsonデータがhtmlとして出力されていることが確認できます。