0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Railsチュートリアルmodule SessionsHelperを例にmoduleとHelperの役割を見てみる

Posted at

Railsチュートリアルも9章に入ったのですが、Sessionが出てきてからかなり難易度が上がったように感じたので、知識の定着を図ることも兼ねて、理解が曖昧な部分を自分用にまとめておきます。

##module SessionsHelperとは

Sessionコントローラーを生成した時点で、自動的にmodule SessionsHelperも生まれてました。

まず、moduleというのはclassと同様に部品の集まりです。以下の説明がわかりやすいと思います。

Rubyにはオブジェクト指向で一般的なクラス以外にも、モジュールという概念が存在します。モジュールではクラスと同じように定数やメソッドをまとめたり、クラスに組み込んで多重継承を実現したり、クラスなどをまとめることで名前空間を提供するなど、いろいろな使い方ができます。 https://qiita.com/shiopon01/items/fd6803f792398c5219cd

ちなみにクラスとモジュールの違いに関する説明はこちらの記事が分かりやすいと思いました。

次にHelperとは、動作の処理をメソッド化してまとめたものです。例えば、上のコードでは「渡されたユーザーでログインする」メソッドと「現在ログイン中のユーザーを返す」メソッドをSessionsHelper内でまとめています。

Railsチュートリアルで、module SessionsHelper内で記述されたメソッドはApplicationControllerを継承したclass SessionsControllerで呼び出されていることを確認できます。

SessionsController内でSessionsHelperが使える理由は、このようにApplicationController内でmodule SessionsHelperがincludeされているからです。

class ApplicationController < ActionController::Base
    include SessionsHelper   
end

まとめると、module SessionHelperとは、Session関連で使うメソッドのまとまりということです。

##まとめ:

本来別のメソッドの記事を書こうとしてたのですが、その記事内でmodule SessionsHelperの説明をセットにしているとくどすぎると感じたので分けることにしました。

0
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?