今日やることと動機
最近、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配下のファイルを一括で投入できる。