2016-04-01 4 views
0

私は、次のHTMLマークアップがあります。私のような追加のセクションたいモバイルデバイス用のyieldステートメントをビューポートに応じてレンダリングしますか?

<div id="site-wrapper" class="show-for-large-only"> 
    <div id="site-canvas"> 
    <%= yield %> 
    </div> 
</div> 

を:CSSで

<div class="show-for-small-only"> 
    <%= yield %> 
</div> 
<div id="site-wrapper" class="show-for-large-only"> 
    <div id="site-canvas"> 
    <%= yield %> 
    </div> 
</div> 

を私は、ユーザーのビューポートに応じて、divを非表示にすることができます。

収量のコンテンツを2回レンダリングしないようにする方法はありますか?つまり、関連するdivのみをレンダリングする方法はありますか?

答えて

0

サーバーは、クライアントの画面サイズと利用可能なビューポートについて認識していません。クエリ文字列に指定したり、別のajaxリクエストを指定しない限り、私はそれを判断することは不可能だと思います。

あなたの所では、必要なモバイルコンテンツの追加リクエストをajaxに依頼します。

EDIT:あなたのコントローラで

、あなたはrequest objectを使用して、HTTPヘッダでユーザーエージェントを決定することができます。私はこれの助けを書くだろう。結果を@is_mobile_agentのようなインスタンス変数に保存し、ビューではの文をyieldの前に追加する必要があります。何かのように

yield if @is_mobile_agent 
関連する問題