ドグサレ初心者のへっぽこビッグウェーブ

地球の底辺にいるゴミがプログラミングとか音楽とかを語るクソブログ

railsとscaffoldをはじめからもういちど

内容的にアウトなテーマのアプリを作ってしまったので、デプロイできない。

というわけで、DB構成を考えた上でもっかい作り直そうという感じ。
DB構成考えるっても本に載ってたやつをちょっと変えたくらいだけど。

備忘もかねてもっかいアプリ作成してscaffoldから。

プロジェクトディレクトリを作成
> mkdir hogepro
> cd hogepro
ディレクトリ内に設定ファイルを作る
> echo "2.2.2" > .ruby-version  //rubyのバージョン指定
> echo "hogepro" > .ruby-gemset  //gemのセットを入れる場所
> cd ../
> cd hogepro

一度ディレクトリに入り直すと、↓みたいな感じでgemsetが作成される

ruby-2.2.2 - #gemset created /xx/xx/.rvm/gems/ruby-2.2.2@hogepro
ruby-2.2.2 - #generating hogepro wrappers..........
Gemfileを作る
> touch Gemfile  //Gemfileを作成
> open .  //ディレクトリを開く

※ここからGemfile操作(viとかエディタで)

取得先と取得gemを記載する
source 'https://rubygems.org/'
gem 'rails'

※Gemfileはここまで、保存する

Gemfileを利用してライブラリのインストール
> gem install bundler  //Gemfileを処理するgemツールを取得
> bundle install   //Gemfileの中にあるライブラリを全て入れる
...
> rails new .   //現在の場所に新しいrailsプロジェクトを作る(この時Gemfileのoverwriteは実行する)


ここまででとりあえずプロジェクト作成!

DBの構築:まずはメインのDB作成
> rails generate scaffold music genre:string title:string jacket:binary album:string publish:string published:date youtube:string
2つのテーブル同士のハブとなるテーブルのマイグレーションファイルを生成

※実は役割をよくわかっていない

> rails generate migration CreateJoinTableArtistMusic artist music   #artistとmusicのテーブルのハブ
必要なテーブルをscaffoldで作成 ※memosテーブルだけはmodelのみ
> rails generate scaffold user username:string password:string salt:string email:string bm:boolean roles:string reviews_count:integer
> rails generate scaffold artist name:string birth:date homepage:string ctype:string photo:binary
> rails generate scaffold review music:references user:references body:text
> rails generate scaffold fan_comment artist_no:integer name:string body:text deleted:boolean
> rails generate model memo memoable_type:string memoable_id:integer body:string
マイグレーションを実行
> rake db:migrate
DBの内容を確認
> rails dbconsole  #DB(SQLiteクライアント)を起動
> .tables  #DB内のテーブルをリスト表示
> .quit


とりあえずここまで。


おっと、要素を忘れてしまった。scaffold作り直したい。
そんなときの削除方法。
(参考↓)tamamemo.hatenablog.com

> rails destroy scaffold hoge-table
> rails generate scaffold hoge-teble ~~~
> rake db:drop
> rake db:migrate

ぞす。