Railsアプリのすべてのモデル、コントローラー、およびビューファイルで使用したい配列をハッシュに変換する関数があります。
これはいくつかのコア設計原則に違反していますか、それとも本当に明らかな何かが欠けていますか?
更新: これは実際にはソフトウェア エンジニアリングの質問です。Railsで「便利な」ことが許可されていない理由を理解したいのですが、それはまさに、彼らが私たちにそれをさせたくないからだと思います
Railsアプリのすべてのモデル、コントローラー、およびビューファイルで使用したい配列をハッシュに変換する関数があります。
これはいくつかのコア設計原則に違反していますか、それとも本当に明らかな何かが欠けていますか?
更新: これは実際にはソフトウェア エンジニアリングの質問です。Railsで「便利な」ことが許可されていない理由を理解したいのですが、それはまさに、彼らが私たちにそれをさせたくないからだと思います
これは実際には悪い習慣である可能性があります。代わりに、コントローラーとモデルで常に配列とハッシュを操作し、必要に応じてビューでそれらを代替に変換する方がよいでしょう。
つまり、データがアプリケーション全体で配列としてネイティブに表現されている場合は、そのように処理し、ビューでハッシュにする必要がある場合は、最初に変換して割り当てるか、ヘルパーを使用してビューで変換します。
グローバル ヘルパーを表示: helpers/application_helper.rb
コントローラーからヘルパーを呼び出さなければならない場合でも、そこで定義することができます。
def Something
....
hashData = @template.helper(arrayData)
end
モデルでヘルパーを呼び出すことは本当に良い考えではありません。意味がありません。
最後に、このロジックをライブラリにカプセル化するのが理想的です。コントローラはライブラリを呼び出すことができ、ビュー ヘルパーも同様に呼び出すことができます。
私はあなたがいると思います: ビューはそのメソッドを必要としないはずです. コントローラーはそれを行い、それをビューに渡して表示する必要があります。コントローラー、またはさらに良いことに、サービス レイヤーはそのメソッドをモデル オブジェクトに適用する可能性がありますが、モデル オブジェクトがそれを知る理由はほとんどありません。