コントローラーに固有の場合は、コントローラーに保持します。
すべてのコントローラーに適用される場合は、ApplicationController に入ります。
一部のコントローラーで共有され、他のコントローラーでは共有されない場合は、ApplicationController から継承するコントローラーから継承するか、include/extend を使用するか、拡張するモジュールを作成します ActiveSupport::Concern
(これは、Rails が内部的にかなり一般的に使用するものです)。
Railsapp/controllers
のオートロードは、モジュールの名前空間と一致するパスに依存するためA::B::C
、app/controllers/a/b/c.rb
. Javaなどのように深くしないでください。整理しておくために必要な数のディレクトリ/モジュールを用意してください。
注: コントローラーは独自のモジュールに含めることはそれほど問題ではありませんが、私の経験では、モデルは のようにルートにとどまる必要app/models
があります。そうしないと、問題が発生します。
あなたがそれを助けることができるなら、私はセッションにあまりにも多くを保存することも避けたい. 代わりに、DB (またはブラウザー環境固有の場合は長寿命の Cookie) に保存します。たとえば、誰かがログアウトして 1 つのレコードを見ていたら、後で再度ログインして、そのレコードへのリンクを含むリストを取得したいと思うかもしれません。
ところで-あなたは尋ねていませんでしたし、おそらく最近アクセスしたページをセッションに保存するためのコードをすでに持っていますが、同様の質問/回答があります: