Action Cableの習作: Examplesの更新: 1: モデルの作成

外観

GitHubで公開されているAction Cableのサンプルコードが最後に更新されたのは2017年です。Rails 6環境に合わせてこのコードを書き直してみました。手順が長くなったため投稿を4回に分けています。

1. モデルの作成
2. ユーザの認証
3. メッセージとコメントの表示
4. Action Cableの利用

画像1

環境
macOS 10.15.4
Ruby 2.7.1
Rails 6.0.3
Yarn 1.22.4
Node 13.12.0

リポジトリ

参照

モデル作成

下記のモデルを作成します。

画像2

Rails new
アプリを新規作成します。

rails new -MT --skip-active-storage try_ac_examples
cd try_ac_examples

Generate User model
ユーザモデルを生成します。

bin/rails g model User name
bin/rails db:migrate

Add User seeds
ユーザのシードを追加します。

db/seeds.rb

big   = User.create! name: 'The Notorious B.I.G.'
snoop = User.create! name: 'Snoop Dogg'
flex  = User.create! name: 'Funkmaster Flex'
ice   = User.create! name: 'Ice Cube'

問題なくユーザが作成されることを確認します。

bin/rails db:seed:replant

Generate Message model
メッセージモデルを生成します。

bin/rails g model Message title content:text user:belongs_to
bin/rails db:migrate

ユーザモデルにhas_manyを追加します。

app/models/user.rb

class User < ActiveRecord::Base
  has_many :messages
end

Add Message seeds
メッセージのシードを追加します。

db/seeds.rb

Message.create! title: 'Tha Shiznit', content: 'Poppin, stoppin, hoppin like a rabbit', user: snoop
Message.create! title: 'Hypnotize ', content: 'Hah, sicker than your average Poppa', user: big

問題なくユーザとメッセージが作成されることを確認します。

bin/rails db:seed:replant

Generate Comment model
コメントモデルを生成します。

bin/rails g model Comment content:text user:belongs_to message:belongs_to
bin/rails db:migrate

ユーザモデルにhas_manyを追加します。

app/models/user.rb

class User < ActiveRecord::Base
  has_many :messages
  has_many :comments
end

メッセージモデルにhas_manyを追加します。

app/models/message.rb

class Message < ActiveRecord::Base
  belongs_to :user
  has_many :comments
end

モデルが作成できることを確認します。

bin/rails c -s
Comment.count
=> 0
u = User.first
m = Message.first
Comment.create! content: 'content', user: u, message: m

モデルの作成は、以上になります。


この記事が気に入ったらサポートをしてみませんか?