Я относительный новичок в Rails и Mongoid, поэтому прошу прощения, если ответ на этот вопрос должен быть очевидным.:)
Я создаю приложение Rails 3, которое позволит пользователям находить фильмы на основе атрибутов фильмов.У меня есть MoviesController
с действием index
, которое позволяет пользователю выполнять сортировку по атрибутам в модели Movie
(например, genre
, studio
и т. Д.).
Придумайте следующее решение, но оно не кажется устойчивым, так как оно уже начало замедляться по мере роста моей базы данных.
# 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>
...
Я исследовал действия и кеширование фрагментов для ускорения процесса, ноЯ должен думать, что есть лучший способ сделать это.
Заранее спасибо за вашу помощь!