search
LoginSignup
1

More than 1 year has passed since last update.

posted at

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

投稿モデルの作成

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

$ 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
What you can do with signing up
1