投稿モデルの作成
アプリ制作の下準備が完了したので、早速開発に取り掛かります。
つぶやきの投稿や削除ができるよう、まずは「投稿」モデルを実装します。
$ bin/rails g model Post content:text
Postモデルが作成され、db/migrateにcreate_posts.rbというファイルが作成されました。
create_posts.rb
class CreatePosts < ActiveRecord::Migration[5.2]
def change
create_table :posts do |t|
t.text :content
t.timestamps
end
end
end
changeメソッドには、postsというテーブルを作成すること、postsテーブルがcontentというカラム、打刻用カラム(timestamps)を持つことが記されています。
このままマイグレーションを実行します。
$ bin/rails db:migrate
これでDBにpostsテーブルが追加されました。
コントローラーとビューの作成
CRUD機能を作成するため、HTTPメソッドがGETのアクションを作成します。
index(一覧表示)、show(詳細表示)、new(新規投稿)、edit(編集)アクションを指定し、ジェネレータコマンドを実行。
bin/rails g controller posts index show new edit
これで、コントローラーとビューの雛形を作成できました。
この方法では、4つのアクションについて個別のルーティングを追加してくれるようですが、一括で設定したいのでconfig.routes.rbからこれらのアクションについての設定を消します。
代わりに次の設定を追加。
config.routes.rb
resources :posts
resourcesメソッドはCRUDに関するルーティングを一括で設定してくれます。
また、ルートパス「/」に投稿一覧が表示されるようするため、以下を追記。
config.routes.rb
root to: 'posts#index'
ちゃんと変更されたようです。