#はじめに
こちらの記事はRuby on Railsのおおよその機能復習用の記事です。ActiveHogeとかActionPageとか、そのへんの内容を、大まかにまとめてます。
#Rails ver...
Ruby on Rails 5.2
#ActionHoge, ActivePage一覧
・ActiveRecord
・ActiveModel
・ActionController
・ActionMailer
・ActionView(erb, slim, haml )
・ActionDispatch
・ActiveJob
・ActionCable(new!)
・ActiveSupport
・ActiveStorage(new!)
、、、
#RailsMVCにおけるActiveHoge, ActionPage
##Model
- ActiveRecord::Base
- 基本的なデータベースを操作するModelClassのおじいちゃん
- ApplicationRecord < ActiveRecord::Base
- ActiveRecord::Baseを親に持ち、各ModelClassを子に持つ。みんなのお父さん。
- ActiveModel::Model
- Hoge::Page < ActiveModel::Model等で定義。Hogeに対して, moduleであるActiveModelをHoge::Page(Hogeの細かな動作)に継承する事により、Hogeに対する細かな操作を分離する実装が出来る。moduleで定義したりも
- 二重コロンに関して参照: https://qiita.com/ktarow/items/772014a4f0d48905f3ef
##Controller
- ActionController::Base
- controller全員のおばあちゃん
- ApplicationController < ActionController::Base
- ActionController::Baseを親に持ち、多くは各Model毎のコントローラを子に持つ。みんなのお母さん。
- ActionMailer::Base
- Mailerのおばあちゃん
- ApplicationMailer < ActionMailer::Base
- ActionMailer::Baseを親に持ち、Mailerそれぞれのclassを子に持つお母さん。Modelでの処理に対して適切な子Mailerの該当メソッドを呼び出し、メールを送ったりする。
##View
- ActionView(erb, slim, haml )
- 同じ名前のコントローラディレクトリにdefaultでは配置される。コントローラのメソッドはdefaultで各viewに対してのrenderをしており、用途により(api使用など)render json: {}等で対応する。
- erb, slim, haml等のテンプレートエンジンにより、railsが用意している便利なメソッド達とhtml, cssを上手く組み合わせることが出来る。
- 最近では、viewを使わずコントローラを完全なapiとして、vueやreact等のjsでフロントを構成する事が多い。簡単なCMSではviewを使うのが良いだろう。組み合わせることも可能である。
#その他
- ActionDispatch
- config/route.rbにrouteを記載することにより、コントローラのルートをいい感じにしてくれる、、、だと、、、思う、、、多分他にもいっぱい、、なにか、、してる、、、求む、、、知識、、、
- ActiveJob
- バックグラウンドで勝手に処理してほしいことをjobとしてキューに登録することが出来る。
- ActionCable (new!)
- WebSocketとRailsをいい感じにしてくれる。チャット等が実装しやすくなった。Pub, Sub, Channelの考え方でいい感じにしてくれる。いい感じに、、、、
- ActiveSupport
- includeしてmodule化して、modelやらの拡張機能を追加する時に便利なクラス。部分的に機能をrequireしてつかったりもしたり。いろんなメソッドに対して様々な拡張機能を持っている。modelが肥大化したりした時にmoduleに切り分ける時などに
- ActiveStorage (new!)
- ファイルの保存先をいい感じに設定できる機能
config/storage.ymlに使用するストレージの情報を登録して、モデルの該当カラムにhas_OO_attachedを宣言することにより、使用可能。 - 可能ストレージ
- ・ローカルディスク
- ・Amazon S3
- ・Google Cloud Storage
- ・Azure Storage
- ・Mirror Service
#終わりに
大まかな概要しかつかめていません。ActiveSupportやActiveModel等の使いこなしは、実務で培って行きたいと思っております。また、ActionCableやActiveStorage等、新しい魅力的な機能も出てきたので、そこら辺を使ったサンプル等も、今後作ってQiitaでまとめられたら良いなと思います。間違ってる点はガンガン教えて頂けましたら幸いです。