0

私が作成しているRailsアプリでは、コントローラーにいくつかのコードがあり、それが適切な場所にあるかどうか疑問に思っています。コードはかなり重要ではなく、ID を配列に格納して「最近表示した」ページを表示します。3行くらいのコードですが、将来的に考えているのですが、この機能が拡張されたら?コントローラーを肥大化させたくありません。

モジュールを作成することもできますが、その場合、ファイルはどこに保存すればよいですか? コントローラーはセッション管理を行うのに適切な場所ですか? コード編成に関する提案はありますか?

ありがとう

4

1 に答える 1

2

コントローラーに固有の場合は、コントローラーに保持します。

すべてのコントローラーに適用される場合は、ApplicationController に入ります。

一部のコントローラーで共有され、他のコントローラーでは共有されない場合は、ApplicationController から継承するコントローラーから継承するか、include/extend を使用するか、拡張するモジュールを作成します ActiveSupport::Concern(これは、Rails が内部的にかなり一般的に使用するものです)。

Railsapp/controllersのオートロードは、モジュールの名前空間と一致するパスに依存するためA::B::Capp/controllers/a/b/c.rb. Javaなどのように深くしないでください。整理しておくために必要な数のディレクトリ/モジュールを用意してください。

注: コントローラーは独自のモジュールに含めることはそれほど問題ではありませんが、私の経験では、モデルは のようにルートにとどまる必要app/modelsがあります。そうしないと、問題が発生します。

あなたがそれを助けることができるなら、私はセッションにあまりにも多くを保存することも避けたい. 代わりに、DB (またはブラウザー環境固有の場合は長寿命の Cookie) に保存します。たとえば、誰かがログアウトして 1 つのレコードを見ていたら、後で再度ログインして、そのレコードへのリンクを含むリストを取得したいと思うかもしれません。

ところで-あなたは尋ねていませんでしたし、おそらく最近アクセスしたページをセッションに保存するためのコードをすでに持っていますが、同様の質問/回答があります:

于 2013-02-18T20:08:00.827 に答える