LoginSignup
1

More than 3 years have passed since last update.

Railsでモデル、コントローラー、ビューを作成する。

Posted at

投稿モデルの作成

アプリ制作の下準備が完了したので、早速開発に取り掛かります。
つぶやきの投稿や削除ができるよう、まずは「投稿」モデルを実装します。

$ 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'

サーバーを再起動し、ローカルホストにアクセスすると…
ABCAA74E-1E1A-487C-8402-889A7AD99C08_4_5005_c.jpeg

ちゃんと変更されたようです。

参考

現場で使える Ruby on Rails 5速習実践ガイド

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1