0

Railsアプリのすべてのモデル、コントローラー、およびビューファイルで使用したい配列をハッシュに変換する関数があります。

これはいくつかのコア設計原則に違反していますか、それとも本当に明らかな何かが欠けていますか?

更新: これは実際にはソフトウェア エンジニアリングの質問です。Railsで「便利な」ことが許可されていない理由を理解したいのですが、それはまさに、彼らが私たちにそれをさせたくないからだと思います

4

2 に答える 2

1

これは実際には悪い習慣である可能性があります。代わりに、コントローラーとモデルで常に配列とハッシュを操作し、必要に応じてビューでそれらを代替に変換する方がよいでしょう。

つまり、データがアプリケーション全体で配列としてネイティブに表現されている場合は、そのように処理し、ビューでハッシュにする必要がある場合は、最初に変換して割り当てるか、ヘルパーを使用してビューで変換します。

グローバル ヘルパーを表示: helpers/application_helper.rb

コントローラーからヘルパーを呼び出さなければならない場合でも、そこで定義することができます。

def Something
  ....
  hashData = @template.helper(arrayData)
end

モデルでヘルパーを呼び出すことは本当に良い考えではありません。意味がありません。

最後に、このロジックをライブラリにカプセル化するのが理想的です。コントローラはライブラリを呼び出すことができ、ビュー ヘルパーも同様に呼び出すことができます。

于 2010-05-23T01:33:28.230 に答える
0

私はあなたがいると思います: ビューはそのメソッドを必要としないはずです. コントローラーはそれを行い、それをビューに渡して表示する必要があります。コントローラー、またはさらに良いことに、サービス レイヤーはそのメソッドをモデル オブジェクトに適用する可能性がありますが、モデル オブジェクトがそれを知る理由はほとんどありません。

于 2010-05-23T01:26:49.523 に答える