【備忘録】railsでのアプリ開発の流れ
自分用のメモです。
アプリ開発の流れを残しておきます。
①ER図を作成
②ディレクトリ作成
cdコマンドでProjectディレクトリまで移動した上で、
$ mkdir 作成したいディレクトリ名
$ lsコマンドで確認
ディレクトリが作成されているのが確認できたらOK。
③Gemfileの生成
▼参考記事
cdコマンドで作成したディレクトリまで移動した上で、
$ bundle init
Writing new Gemfile to /path/to/ディレクトリ名/Gemfile
と返ってきたら、Gemfile生成成功。
④生成したGemfileの編集
$ vim Gemfileで編集できる状態にした上で
# frozen_string_literal: true
source "https://rubygems.org"
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
gem "rails"
(railsのコメントを外すだけです)
⑤Railsのインストール
ターミナル
$ bundle install --path vendor/bundle
$ bundle install --path vendor/bundle
この時に--path vendor/bundleを忘れずにつけること。
このオプションを付けることによって、プロジェクトのvendor/bundle以下にgemが格納されます。(一度オプションをつけてbundle installしたら、次回以降はオプションを付けなくてもvendor/bundle以下に格納されるようになります)
⑥Railsアプリを生成
ここまでで準備が整ったので、アプリを作っていきます!
$ bundle exec rails new . -B -d mysql --skip-turbolinks --skip-test
注1)bundle execを必ず先頭につけること!
注2).(ドット)をつけることで現在のディレクトリにRailsアプリを生成できます。
Railsのインストール実行時にGemfileを上書きしていいか聞かれるので、yesにして続行します。
⑦githubで新しいレポジトリを作成
⑧git init → git add → git commit → git remote add origin → git pushの順に実行
ターミナル
$ git init
$ git add .
$ git commit -m "first commit"
$ git remote add origin https://github.com/githubアカウント名/アプリ名.git
$ git push -u origin master
$ git init
$ git add .
$ git commit -m "first commit"
$ git remote add origin https://github.com/githubアカウント名/アプリ名.git
$ git push -u origin master
これでWebアプリの土台が出来上がりました!
次はデータベースの作成です。
⑨データベースの作成
まずは[email protected]を立ち上げて、
mysql --user=root --password を実行。
中に入って、まだアプリが入っていないことを確認。
※下記エラーが発生して中に入れない場合・・・一度mysqlを閉じて、ps -ef | grep mysqlを実行。
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES
$ ps -ef | grep mysql
すると、3つのプロセスが走っていたのでこれらを全てkillする。
その上で再度mysqlを立ち上げ直し、
mysql --user=root --password を実行。
入れます!
$ bundle exec rails db:create
$ bundle exec rails db:migrate(データベースに変更を指示・反映する)
このとき、mysql2に関するエラーが出ましたが下記記事に沿って
$ bundle config --local build.mysql2 "--with-cppflags=-I/usr/local/opt/[email protected]/include"
$ bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/[email protected]/lib"
$ bundle install
を実行したところ解決しました。
▼参考記事
その上で再度 mysql --user=root --password を実行。
中に入って、アプリのデータベースが作成されていることを確認。
★Sequel Pro(シークエル・プロ)を使うとより便利に確認できます。
⑩サーバーを立ち上げる
ターミナル
$ bundle exec rails s
$ bundle exec rails s
すると、Webpackerやnode、node.jsなどがまだインストールされていないですといった内容のエラーが出てくるので、それらをすべてインストールする。
▼参考記事
$ bundle exec rails webpacker:install
その上で再度サーバーを立ち上げる
$ bundle exec rails s
成功!
⑪下記の順で実行
ターミナル
$ git add .
$ git commit -m "create_database"
$ git push origin master
$ git add .
$ git commit -m "create_database"
$ git push origin master
次は、便利機能「devise」のインストールです。
▼参考記事
⑫deviseのインストール〜deviseでのUsersテーブル作成、Usersビュー作成、Usersコントローラー作成まで
$ vim Gemfileで編集できる状態にした上で
gem 'devise' #ファイルの一番下に追記
$ bundle install
$ bundle exec rails g devise:install
(↑deviseの設定ファイルをrailsアプリケーションにインストールする)
$ bundle exec rails g devise user
(↑Userモデルを作成するためuserにしているが、他のモデルを作成したいときはそのモデル名で作成すること。またマイグレーションファイルを見てみると、
emailとパスワード用のカラムは自動で生成されるようになっているので、
他に追加したいものがあればここのタイミングでマイグレーションファイルに追記しておく。)
$ bundle exec rails routes
(↑routesを確認する)
$ bundle exec rails db:migrate
(↑つくったモデルを元にデータベースをつくる。これを行わないとデータベースにUsersテーブルが作成されない。)
$ bundle exec rails g devise:views users
(↑deviseに対応したビューを作成)
$ bundle exec rails g devise:controllers users
(↑deviseに対応したコントローラーを作成)
サーバーを立ち上げて確認する。
$ bundle exec rails s
▼参考記事
色々なrails generate migrationコマンドが載っていて参考になりました。
そして次は、deviseを使わずにPostsテーブル作成、Postsビュー作成、Postsコントローラー作成を行っていきます。
⑬手動でPostsテーブル作成、Postsビュー作成、Postsコントローラー作成まで
▼参考記事
$ bundle exec rails g model Post user_id:integer title:string content:text category_id:integer
これにより、下記2つのファイルが同時に作成される。
・app/modelsフォルダ下にPostモデルファイル(app/models/post.rb)
・db/migrateフォルダにマイグレーションファイル
今回はマイグレーションファイルにカラム名とデータの型を色々と指定した状態で作成したが、
あとからマイグレーションファイルを編集してもOK。
▼参考記事
$ bundle exec rails db:migrate(データベースに変更を指示・反映する)
次にPostのコントローラファイルを生成する。
$ bundle exec rails generate controller Posts
次にPostのビューファイルを生成する。
▼参考記事
Postのコントローラーの生成を終えた時点で、自動的にviewsフォルダの中にPostフォルダが作成されている。
なのでその中にファイルを生成していく。
「index.html.erb」という名前でファイルを作成する。
index.html.erb 手動でファイル作成
ファイル内に以下のようにコードを打ち込む。
<p>Hello World!</p>
そのあと、Postのコントローラーへindexアクションメソッドを追加。
class PostController < ApplicationController
def index
end
end
最後に、ルーティングを設定すれば完成!
<ルーティングとは>
コントローラへ指示を出すための道筋。
URLがルーティングにあたる。
Railsでは、ルーティングの指示に従いコントローラのアクションが実行される。
例
root to: "posts#index"
「root」という道筋でアプリにたどり着いたら
「postsコントローラのindexアクションを動かしてね!」
という指示出し。
サーバーを起動して、localhost:3000 にアクセスすると「Hello World!」と表示される。
あとはここまでの流れのとおりに残りのcategoriesテーブル、responsesテーブル、posts_categories_relationsテーブルも作成し、それぞれMVCの形を整えていく。
※多対多の関係についてはまた別の記事で。
Author And Source
この問題について(【備忘録】railsでのアプリ開発の流れ), 我々は、より多くの情報をここで見つけました https://qiita.com/asami___t/items/d1b1365e76966ee6c943著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .