RoRチュートリアル第2章
Ruby on Railsチュートリアル第2章Toyアプリケーション!
railstutorial.jp
前回つくった,workspaceディレクトリに移動してToyアプリの骨組みを生成する。
railsのバージョンは入っているものに合わせて…
$ cd ~/workspace $ rails _4.2.6_ new toy_app $ cd toy_app/
Toy_appの中のGemfileを書き換える。
source 'https://rubygems.org' gem 'rails', '4.2.2' gem 'sass-rails', '5.0.2' gem 'uglifier', '2.5.3' gem 'coffee-rails', '4.1.0' gem 'jquery-rails', '4.0.3' gem 'turbolinks', '2.3.0' gem 'jbuilder', '2.2.3' gem 'sdoc', '0.4.0', group: :doc group :development, :test do gem 'sqlite3', '1.3.9' gem 'byebug', '3.4.0' gem 'web-console', '2.0.0.beta3' gem 'spring', '1.1.3' end group :production do gem 'pg', '0.17.1' gem 'rails_12factor', '0.0.2' end
ローカルgemをインストールして,
$ bundle install --without production
GitでこのToyアプリケーションもバージョン管理できるようにする。
$ git init $ git add -A $ git commit -m "Initialize repository"
GitHubで新しいリポジトリを作成して生成したファイルをこの新しいリモートリポジトリにプッシュする。
$ git remote add origin https://github.com/irish15/toy_app.git $ git push -u origin --all
この変更をコミットし,Herokuにプッシュ!
$ git commit -am "Add hello" $ heroku create $ git push heroku master
これで,アプリケーションを作成するための下準備が整ったので早速設計していく。
ユーザーのモデル設計
これを実装する。
$ rails generate scaffold User name:string email:string
続いて,Rakeを使用してデータベースを更新し,usersデータモデルを作成する。rakeコマンドはRuby版のmakeって感じ
$ bundle exec rake db:migrate
サーバー起動させてwebページ確認してみよう!
$ rails server
ユーザーページを確認ね → http://localhost:3000/users
できてる〜〜〜〜〜(˶‾᷄ ⁻̫ ‾᷅˵)
toy_app/config_routes.rbの
# root 'welcome#index'
を,以下に書き換える
$ root 'application#hello'
次に,マイクロポストのモデル設計
これを実装する。
$ rails generate scaffold Micropost content:text user_id:integer $ bundle exec rake db:migrate
toy_app/config/routes.rbを以下のようにする。
Rails.application.routes.draw do resources :microposts resources :users
はい確認〜〜 → http://localhost:3000/microposts
できてる〜〜〜〜〜(˶‾᷄ ⁻̫ ‾᷅˵)
更に文字数制限をつけてみよう。最大140文字にする!
toy_app/app/models/micropost.rbに書き足し
class Micropost < ActiveRecord::Base validates :content, length: { maximum: 140 } end
文字数制限を超えるとエラーメッセージが出るようになったらおけb
ユーザーとマイクロポストを関連づける!
こういうイメージ↓↓
1人のユーザーに複数のマイクロポストがある。
toy_app/app/models/user.rb
class User < ActiveRecord::Base has_many :microposts end
1つのマイクロポストは1人のユーザーにのみ属する。
toy_app/app/models/microposts.rb
class Micropost < ActiveRecord::Base belongs_to :user validates :content, length: { maximum: 140 } end
UsersコントローラとMicropostsコントローラにおける継承関係のイメージはこういう感じになる↓↓
ふぅ〜
さて,アプリケーションをデプロイしましょ
$ git add -A $ git commit -m "Finish toy app" $ git push
Herokuにも展開しとこ!
$ git push heroku $ heroku run rake db:migrate
実行すると,
remote: https://~~~~~~~~ deployed to Heroku
ってのがあるから,このurlにいくと,作成したwebアプリケーションのToyAppが見れる!!(⁎˃ᴗ˂⁎)
よきかなよきかな〜〜〜👏👏