7
5

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 5 years have passed since last update.

開発日記 6/9~6/10(Railsでレシピアプリを作成)

Posted at

概要

Railsを使用したポートフォリオの製作過程を記録していきます。作成しているアプリはマクロ(炭水化物・タンパク質・脂質)計算が可能なレシピアプリです。

方針

まずは「完成させること」を目標にします。そのため、テストは未実装ですし、レイアウトも簡素にしています。

環境

  • Docker 18.09.2
  • docker-compose 1.23.2
  • ruby 2.5.5
  • Rails 5.2.3

進捗

ユーザモデルの作成

Railsチュートリアルを参考にしてます。Railsチュートリアルは本当に優秀だと思います。

ER図の作成

『達人に学ぶDB設計入門』によると、プログラムの設計よりもデータ設計からはじめる方が効率的らしいので、ER図を作成しました。
image.png

材料データの作成

本当はAPIを利用して食材の栄養素データをとってきたかったのですが、良さそうなAPIが見つからなかったので、あらかじめ栄養素データをデータベースに入れておく方法をとります。

具体的には、日本食品標準成分表2015年版(七訂):文部科学省のcsvデータをRailsアプリにインポートします。

そのままインポートはできないので、データを整形したのちにインポートします。
[参考]
食品の栄養価をAPIで取得できるクラウド・データベースを構築する - Qiita
RailsでのCSVデータ投入 - Qiita
日本食品標準成分表2015年版(七訂):文部科学省
railsでcsvを読み込んで、DBへ保存する - Qiita

つまづいたとこ&自分用メモ

csvのインポート

  • nameカラムだけインポートされていない(nilになる)
  • logを見てみると「invalid multibyte char (US-ASCII)」と表示されたので、文字コードの問題でした。『# coding: utf-8』をseeds.rbの冒頭に追加して解決

Dockerの操作

  • rails db:migrateができない?
  • docker-compose runを使用し、コンテナ内でコマンド実行する必要がある

(例)
docker-compose run web rails db:migrate

[参考]
docker-compose で Rails の開発環境を作る

bootstrap4の導入

  • File to import not found or unreadable: bootstrap-sprockets.というエラーが出た
  • Bootstrap4からはRailsへのBootstrapの導入方法が変更になっている

[参考]
Railsアプリで Bootstrap 4 を利用する - Qiita

rails generateをやり直す

$ rails generate controller FooBars hage
「あ、やっちゃった!」
$ rails destroy controller FooBars
「ふ~、助かった」

[参考]
開発中に rails generate や db:migrate をやり直したい時 - Qiita

コメント

csvデータの整形とインポートにかなり苦戦しました。エラーログの見方がまだしっかりと理解できていないので、そこは復習していきます。

それと、「日本食品成分表」のデータはかなり細かく食材が分類されています
image.png
ユーザがレシピを登録する際に食材を選択するのがかなり煩雑になるので、このあたりも解決していかないといけないですね。

7
5
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
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?