【9日目】【1日20分のRailsチュートリアル】Micropostsリソースの作成からToyアプリのデプロイまで
今日は「2.3 Micropostsリソース」から。
2.3 Micropostsリソース
Usersリソースの次はMicropostsリソース。
2.3.1 マイクロポストのページを探検する
Usersと同じようにMicropostsを作って
$ cd toy_app/
$ rails generate scaffold Micropost content:text user_id:integer
データベースのマイグレートもして
$ bundle exec rake db:migrate == 20160720021926 CreateMicroposts: migrating ================================= -- create_table(:microposts) -> 0.0017s == 20160720021926 CreateMicroposts: migrated (0.0019s) ========================
ローカルサーバー起動して
$ cd toy_app/ $ rails server -b $IP -p $PORT
動作確認環境できあがり。
micropostの新規作成画面は下記で表示できる。
https://<ローカルサーバーのアドレス>/microposts/new
適当に2つ作った一覧画面。
2.3.2 マイクロポストをマイクロにする
その名に相応しくマイクロポストを140文字制限に。
クラスに制限を加える感じ、なのかな…?
app/models/micropost.rb
class Micropost < ActiveRecord::Base validates :content, length: { maximum: 140 } end
これで140文字以上でmicropostを作成しようとしたらエラーが発生するようになりました。
2.3.3 ユーザーとマイクロポストをhas_manyで関連づける
テーブルの関連付け、的な。
この辺他の言語ならどうするっけ、って考えたけどいいのは浮かんで来なかった。
UserデータモデルとMicropostデータモデルは1対多の関係。
app/models/user.rb
class User < ActiveRecord::Base has_many :microposts end
app/models/micropost.rb
class Micropost < ActiveRecord::Base belongs_to :user validates :content, length: { maximum: 140 } end
rails console
で関連付けをターミナル上で確認できる。
便利なSQLコマンドみたいなものかなー。
$ rails console Loading development environment (Rails 4.2.2) 2.3.0 :001 >
2.3.4 継承の階層
オブジェクト指向プログラミングのお話。
クラスの継承について。
UsersコントローラもMicropostsコントローラも最終的にはActionController::Base
を継承してます、とのこと。
2.3.5 アプリケーションをデプロイする
それらしいアプリケーションが完成したようなのでGitにコミット、デプロイしておく。
Gitにコミット、Bitbucketにpushする。
$ git add -A
$ git commit -m "Finish toy app"
$ git push
pushできました。
Herokuにもデプロイしておく。
$ git push heroku $ heroku run rake db:migrate
デプロイできましたー。
今日の作業時間は【27分】。
次は「2.4 最後に」から。
そろそろ第2章が終わりそう。