私はRailsとMongoidに対する相対的な初心者ですので、この質問に対する答えが明らかであるならば謝ります。 :)属性に基づいてモンゴイド文書を素早くフィルタリングする最良の方法は?
私は、ユーザーがムービーの属性に基づいてムービーを見つけることを可能にするRails 3アプリケーションを構築しています。私は、ユーザがMovie
モデル(例えば、genre
、studio
など)の属性に基づいてソートすることを可能にするindex
アクションを持つMoviesController
を持っています。
私は以下の解決策を思いつきましたが、私のdbが成長するにつれて既に減速を開始しているため、これは持続可能ではありません。
# controllers/movies_controller.rb
def index
if params[:genre]
@movies = Movie.where(:genre => params[:genre])
elsif params[:studio]
@movies = Movie.where(:studio => params[:studio])
else
@movies = Movie.all
end
end
# views/movies/index.html.erb
<li><%= link_to "Action", movies_path(:genre => "Action") %></li>
<li><%= link_to "Suspense", movies_path(:genre => "Suspense") %></li>
<li><%= link_to "Drama", movies_path(:genre => "Drama") %></li>
...
<li><%= link_to "Paramount", movies_path(:studio => "Paramount") %></li>
<li><%= link_to "Universal", movies_path(:studio => "Universal") %></li>
<li><%= link_to "Disney", movies_path(:studio => "Disney") %></li>
...
私は物事をスピードアップするために行動し、フラグメントキャッシュを調査してきましたが、私はこれを行うには良い方法があると思うしなければなりません。
ご協力いただきありがとうございます。
おかげフェデリコ、私は物事をスピードアップかどうかを確認するために私のインデックス戦略を見てみましょう。もともと私はMongoDBを選んだので、マイグレーションについて心配する必要はなく、また私のアプリでTVショーをモデリングしているので、「エピソード」オブジェクトを私の「ショー」ドキュメントに埋め込む方が効率的だとわかった。 –