【发布时间】:2011-12-23 01:18:39
【问题描述】:
我是 Rails 和 Mongoid 的新手,如果这个问题的答案很明显,我深表歉意。 :)
我正在构建一个 Rails 3 应用程序,它允许用户根据电影的属性来查找电影。我有一个带有index 操作的MoviesController,它允许用户根据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>
...
我已经探索了动作和片段缓存以加快速度,但我必须认为有更好的方法来做到这一点。
提前感谢您的帮助!
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 mongodb mongoid