【发布时间】:2016-12-10 00:35:40
【问题描述】:
我有一个具有以下属性的“课程”模型;
Course
Price - float
Featured - boolean
我的问题如下,我的控制器中需要 4 个列表,最近的课程、付费课程、免费课程和特色课程。
按如下方式编写我的控制器是个好习惯吗?
def index
@courses = Course.order(created_at: :desc)
@free_courses = []
@courses.map {|c| @free_courses << c if c.price == 0}
@premium_courses = []
@courses.map {|c| @premium_courses << c if c.price> 0}
@featured_courses = []
@courses.map {|c| @featured_courses << c if c.featured}
end
还是分开咨询?
def index
@courses = Course.order(created_at: :desc)
@free_courses = Course.where("price == 0")
@premium_courses = Course.where("price > 0")
@featured_courses = Course.where(featured: true)
end
我检查了日志,第一个选项是更好的性能,但我怀疑它是否是反合作伙伴。
谢谢大家!
【问题讨论】:
标签: ruby-on-rails performance scope