2012-05-12 10 views
0

私は、HTML、XML、JSON、モバイル、タブレットなどに応答するRailsアプリケーションを持っています。もちろん、このリソースには "index.html.erb"、 "show.html.erb"、 "new.html.erb"、 "edit.html.erb"、 "_form.html.erb"などのカスタム関数が必要です。ご覧のとおり、「views/books」フォルダには多くのクラッタファイルがあります。私は、「ビュー/ブック」フォルダ内のサブフォルダにそれらを分離することができるようにしたい:Rails:異なるMIMEタイプのビューファイルを再構築する

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

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

私のアプリケーションでは、モバイル、ウェブ、およびタブレットに「_login.erb」を使用するなど、一部のMIMEで一部の部分を再利用する必要があります。次に、CSSを使用してカスタマイズします。

同様の質問が尋ねられますhere。しかし、私は答えに満足していません。なぜなら、それはかなり遅く、私の共通の部分問題を解決しないからです。

答えて

0

私はあなたがきれいなビューのディレクトリ構造を持つだけでは複雑すぎると思います。

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

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

+0

私は、さまざまなデバイスをサポートする一般的な方法だと思います。このリンクはhttp://railscasts.com/episodes/199-mobile-devicesでご覧ください。私はモビールレールのアイデアも気に入っていましたが、ビューセクションには複雑さが増しています。 MIMEタイプがある場合、HTMLerはより少ないロジックでより優れた制御を持ちます。 – wael34218

関連する問題