Rails
備忘録
もくもく会

【初心者歓迎!】Ruby on Railsもくもく会@新橋 に参加させていただきました

今日やることと動機

最近、Reactを始めた(とりあえずReactTutorialを終えたくらい)ので、TodoListのアプリケーションのフロント側を作ってる。
APIでDBからデータを引いてきて画面に表示したい。
せっかくなのでRailsで実装してみることにした。

成果

APIモード

Rails5には"APIモード"なるものがあるらしいので使ってみる。

rails new application --api

ディレクトリ構成も従来よりシンプル。
標準でjsonResponseを返却するようになっている。

とりあえず試してみた。

bundle exec rails scaffold task
rails s

http://localhost:3000/tasks
にアクセス。

jsonのレスポンスが帰って来てるのが確認できた。
(やりたいことがほぼ一瞬で終わった。)

DBをMysqlに変更する

Gemを入れる。

/Gemfile
gem 'mysql2'

config/database.ymlに以下を記述

/config/database,yml
default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password: rd384ktk
  host: localhost
  timeout: 500

React側からリクエストを送信する

http://localhost:3000/tasks
にPOSTする。

データをインサートできる。

seedデータを分割する

bundle exec rails db:seedで実行されるseedingをModel毎に分けたいので仕組みを追加。

db/seeds.rbに以下を記述

db/seeds.rb
development_seed_files = Dir[ Rails.root.join('db', 'seeds', '*.rb') ].sort

ActiveRecord::Base.transaction do
  development_seed_files.each do |file|
    load(file)
  end
end

これでdb/seeds配下のファイルを一括で投入できる。