HerokuのブログにRails5をつかったデモアプリについての記事が公開されていたのでちょっと試してみました。
Getting Started: Application Architecture
Heroku Buttonも用意されていて自分の環境で簡単に動かすことができるみたいです。
Sign upからユーザを作成後にチャットルームを作成、ルーム毎に投稿するといったアプリを動かすことができました。
Starting a new Rails 5 app with Action Cable
はじめにRubyのバージョンは2.3.0を利用します。
次のコマンドでRails5(Beta版)を利用できるようにします。
$ gem install rails --pre
RedisとPostgresのインストールをしておく必要があるみたいです。
You'll also need to have Postgres and Redis installed in order to build this app. You can brew install redis and brew install postgres if you haven't done so already.
Homebrewで簡単にインストールできるみたいです。試してみたら特に問題なく実行できました。
$ brew install redis $ brew install postgres
次のコマンドでRailsアプリを作成します。
$ rails new action-cable-example --database=postgresql
Gemfileを編集します。まずRailsのバージョンから。
gem 'rails', '>= 5.0.0.rc1', '< 5.1' ↓ gem 'rails', '>= 5.0.0.beta3', '< 5.1'
続いてRadisです。defaultでコメントアウトされているのですが、次の記述がありました。need to un-comment outということでコメントアウトを解除すればいいのかなと思います。
Redis (which we will need to un-comment out):
多分こう。
# gem 'redis', '~> 3.0' ↓ gem 'redis', '~> 3.0'
Pumaというものもdefaultで記載がありました。一応書き方はブログに合わせておいた方がよさそう。
gem 'puma', '~> 3.0' ↓ gem 'puma'
これでGemfileの編集は環境しました。次のコマンドを実行します。
$ bundle install
Domain Model
モデルの準備です。チャットルーム、メッセージ、ユーザのモデルを用意します。ブログでは省略されていましたが、実際はmigrationファイルを用意して..という手順が必要だと思います。
app/models/chatroom.rb
class Chatroom < ApplicationRecord has_many :messages, dependent: :destroy has_many :users, through: :messages validates :topic, presence: true, uniqueness: true, case_sensitive: false end
app/models/message.rb
class Message < ApplicationRecord belongs_to :chatroom belongs_to :user end
app/models/user.rb
class User < ApplicationRecord has_many :messages has_many :chatrooms, through: :messages validates :username, presence: true, uniqueness: true end
・・・とここまでやって気づいたのですが、ブログ内で紹介されているのは重要な部分だけで、マイグレーションファイルの作成など細かい手順は省略しているみたいです。
完成版のコードはGitHubで公開されているので、そちらから取得してしまった方が良さそうです。
たぶん次の手順で取得できます。
$ git clone git@github.com:SophieDeBenedetto/action-cable-example.git $ cd action-cable-example $ bundle install $ rake db:create $ rake db:migrate
rake db:createコマンドを実行したところで、次のエラーが発生しました。
DBの設定がちゃんとできてないよというエラーだと思います。この辺の設定がきちんと理解できてないと進め無さそう。。
ということでちょっと試してみるという感じでは動かせませんでした。ちゃんとRails勉強してから挑戦しようと思います。。