2.3から
microportstテーブル
フィールド名 | 型 |
---|---|
id | integer |
content | string |
uesr_id | integer |
$ rails generate scaffold Micropost content:string user_id:integer
$ bundle exec rake db:migrate
route.rbに resources :micropostsが追加されている。
resources :usersは2.3より前で既に作成されている。
DemoApp::Application.routes.draw do
resources :microposts
resources :users
** resources :micropostsの内容 **
HTTPリクエスト URL アクション 用途
GET /microposts index すべてのマイクロポストを表示するページ
GET /microposts/1 show id=1のマイクロポストを表示するページ
GET /microposts/new new マイクロポストを新規作成するページ
POST /microposts create マイクロポストを新規作成するアクション
GET /microposts/1/edit edit id=1のマイクロポストを編集するページ
PATCH /microposts/1 update id=1のマイクロポストを更新するアクション
DELETE /microposts/1 destroy id=1のマイクロポストを削除するアクション
** リスト2.9 マイクロポストの最大文字数を140文字に制限する。 **
app/models/micropost.rb
class Micropost < ActiveRecord::Base
validates :content, length: { maximum: 140 }
end
2.3.3ユーザーとマイクロポストをhas_manyで関連づける
リスト2.10 1人のユーザーに複数のマイクロポストがある。
app/models/user.rb
class User < ActiveRecord::Base
has_many :microposts
end
リスト2.11 1つのマイクロポストは1人のユーザーにのみ属する
app/models/micropost.rb
class Micropost < ActiveRecord::Base
belongs_to :user
validates :content, length: { maximum: 140 }
end
2.3.5デモアプリケーションのデプロイ
herokuへのデプロイ(heroku toolbelt取得/登録済み)
$ heroku create
$ git push heroku master
アプリケーションのデータベースが動作するようにするには、以下を実行して本番データベースのマイグレーションを行う必要もあります。
$ heroku run rake db:migrate