LoginSignup
2
2

More than 5 years have passed since last update.

Railsのだいたい。ActiveHogeとかActionPageとか

Last updated at Posted at 2018-06-15

はじめに

こちらの記事は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でまとめられたら良いなと思います。間違ってる点はガンガン教えて頂けましたら幸いです。

2
2
0

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
  3. You can use dark theme
What you can do with signing up
2
2