0

HTML、XML、JSON、モバイル、タブレットなどに対応するRailsアプリケーションがあります。「本」リソースがあるとしましょう。当然、このリソースには「index.html.erb」、「show.html.erb」、「new.html.erb」、「edit.html.erb」、「_form.html.erb」およびその他のカスタム関数が必要です。ご覧のとおり、「views/books」フォルダーには多くの雑然としたファイルができあがります。「views/books」フォルダー内のサブフォルダーにそれらを分離できるようにしたい:

views/books/json
views/books/mobile
views/books/web
views/books/tablet

コントローラーを台無しにせずにそれを行うにはどうすればよいですか? コントローラー アクションの実行とビューの実行の間にコールバック (フィルター) はありますか? もしあれば、それはこの問題を解決するはずです。

私のアプリケーションをより複雑にしているのは、一部の MIME で一部のパーシャルを再利用したいということです。たとえば、モバイル、Web、およびタブレットに「_login.erb」を使用したいと考えています。次に、CSS を使用してカスタマイズします。

同様の質問がここで尋ねられます。しかし、私は答えに満足していません。なぜなら、それはかなり遅く、私の一般的なパーシャルの問題を解決していないからです。

4

1 に答える 1

0

ビューのディレクトリ構造をきれいにするためだけに、物事を複雑にしすぎていると思います。

まず第一に、JSON 対 HTML の問題と、Web 対モバイル対タブレットの問題を混同しないことをお勧めします。「モバイル」または「タブレット」は MIME タイプではありません。この問題を解決するために Rails の MIME タイプ ベースのビュー機能をハックするつもりはありません。

当社では、異なる MIME タイプ (json/html) に対して異なるビューを使用し、デバイス タイプに基づいて内部でフォークされた 1 つの HTML ビューを使用します。モデル/コントローラーの変更を、デバイス タイプごとに 1 つずつ、3 セットのビューに反映するのは面倒です。ほとんどの場合、ビューは同じか、わずかな違いがあります。mobvious-rails gemを使用して、デバイスに応じてビュー コードをフォークします。それはより良い解決策ではないでしょうか?

于 2012-05-12T11:29:58.593 に答える