0

Rails 3.2.8 を使用しており、URL パラメーターとログインしているユーザー アカウントに応じて、特定の Web ページに HTML (実際には ERB) ファイルを含めるかインポートする必要があります。そのため、インポートされた HTML/ERB ファイルは頻繁に異なります。

たとえば、show.html.erb ファイルに次のコードがあります。

<%= render "levels/#{@level.name}/#{@user.version}" %>

この目的でパーシャルを使用することは適切ですか? ドキュメントによると、パーシャルは「レンダリング プロセスをより管理しやすいチャンクに分割するためのもう 1 つのデバイスです」。ページ構築プロセスをモジュール化するためではなく、さまざまなコンテンツを動的にレンダリングするためにパーシャルを使用しています。私がやっていることのパフォーマンスへの影響と副作用が心配です。Railsで上記のことを達成するためのより良い方法はありますか?

4

1 に答える 1

0

これらのパーシャルが明確な数 (3 つのレベルと 2 つのバージョン) ある場合、呼び出すことができるパーシャルを 6 つ持つことが理にかなっています。これが増えると、組み込みの ruby​​ を使用して別の html をレンダリングする方がよいでしょう。あれは

<div>
  <% if user.version == 2 %>
    <!-- render some stuff -->
  <% else %>
    <p>
      <!-- some other stuff -->
    </p>
  <% end %>
</div>

パフォーマンスが心配な場合は、フラグメント キャッシュを使用できます。Heroku には、キャッシングに関する優れた短期集中 コースがあります。

つまり、パーシャルはこのように使用できます。個人的には、コードのブロックをキャッシュする少数のパーシャルにリファクタリングしようと思います

何千ものパーシャルがある場合、それらを処理する唯一の方法はないと思います。それは、自分のアプリケーションに組み込みたい別のアプリケーションのように思えます。Rails はこの問題をエンジンで解決します。エンジンがオプションでない場合は、プレゼンターも検討できます。

于 2012-09-16T23:55:20.667 に答える