Ruby on Railsを使った開発イメージをRuby on Railsを触ったことがないデベロッパー向けに発表しましたので、公開します。
*発表時より、Railsを使った実際の構成例を紹介するスライドを追加しています。
このイベントです。
https://general.connpass.com/event/63492/
13. 13
Copyright Tutorial Inc. All rights reserved.
13
モデルを作成する
$ rails generate devise:install
$ rails generate devise User
$ rails generate model Profile name:string user:belongs_to email:string comment:text
$ rails generate model Post title:string body:text user:belongs_to
$ rails db:migrate
詳細は省略しますが、以下のようにコマンドで作っちゃいます
14. 14
Copyright Tutorial Inc. All rights reserved.
14
モデルができた
詳細は省略しますが、以下のようなテーブルが作成できました
モデルのファイルも3つ作成されるが、
リレーション以外はほとんど空
でも、動作する
お約束通り
15. 15
Copyright Tutorial Inc. All rights reserved.
15
ルートを書く
routes.rbに
resources :profile
resources :posts
と書くと
ProfileとPostのCRUDのエンドポイントを作ろう
できた。
16. 16
Copyright Tutorial Inc. All rights reserved.
16
コントローラーを書く
$ rails generate controller posts index show new create …
とすると、コントローラーと指定したアクションのビューも作られ、そし
てルートも作られます
ここは、空っぽのままでは動作しないのでしっかり書きます
さっきのルートのコントローラーを作ります
17. 17
Copyright Tutorial Inc. All rights reserved.
17
ビューをかく
例えば空のアクションでも
…
def index
end
…
呼び出されるビューがお約束で決まっています
http://localhost:3000/posts/
に行くと
app/views/posts/index.erb.html
が表示されます。
18. 18
Copyright Tutorial Inc. All rights reserved.
18
ビューをかく
…
def index
respond_to do |format|
format.html { ビューを指定 }
end
end
…
のようにするとhtmlフォーマットにしか反応せず、指定したビューが呼
び出されます
19. 19
Copyright Tutorial Inc. All rights reserved.
19
全部まとめて
モデル、ルート、コントローラー、ビュー全部まとめて作る
$ rails generate resource Comment user:belongs_to content:text
? db/migration/xxx_create_comments.rb
? app/models/comment.rb
? app/views/comments/
? app/controllers/comments_controller.rb
? …
一気に準備できちゃいます。
例えば、コメント機能をつける
20. 20
Copyright Tutorial Inc. All rights reserved.
20
つまづきポイント
ほとんど空でも動作しちゃうから、何を書くのかイメージしにくい
ちゃんと勉強しないと自由に扱いづらいです
27. 27
Copyright Tutorial Inc. All rights reserved.
27
利用例
https://skillcrush.com/2015/02/02/37-rails-sites/
Airbnb、GitHub、Indiegogo、Kickstarter、dribbble…とか
…
33. 33
Copyright Tutorial Inc. All rights reserved.
33
Rails 使用構成例(1)
限定されたユーザーが使う画面はRailsで
不特定のユーザー&サイトからのリクエストがくる部分はGoで
管理ユーザー Rails
Go
(Gin)
DB
一般ユーザー
管理用途 スループット重視
入稿 コンテンツ
fluentd
34. 34
Copyright Tutorial Inc. All rights reserved.
34
Rails 使用構成例(2)
一般ユーザー Rails
Java
(Jetty)
DB
署名全体管理
全体のアプリケーションはRailsで管理
電子署名関連の機能は、Javaのライブラリを活用
35. 35
Copyright Tutorial Inc. All rights reserved.
35
Rails 使用構成例(3)
管理ユーザー AngularJS
Rails
(API)
DB
バックエンド専念GUI(別Project)
一般ユーザー
予約Web画面
JSベースのGUIアプリを別途開発(アプリ化前提で)
RailsはAPIに専念させる
36. 36
Copyright Tutorial Inc. All rights reserved.
36
Rails 使用構成例(4)
リクエスト処理にExpressJSを
管理用途にはRailsを使用
管理ユーザー Rails Express
DB
一般ユーザー
管理用途 割と重い画像が多い
メディア
コンテンツ