ActiveRecord条件语法问题

时间:2010-08-19 18:55:32

标签: ruby-on-rails activerecord

有没有更好的方法来写这个?是否可以在一条线上干净利落?

conditions = ["category = ?", params[:category]] if params[:category]
@events = CalendarEvent.all( :conditions => conditions )

2 个答案:

答案 0 :(得分:1)

巩固并不是太多,但你没有太多进展,所以不应该。

def action
    options = {:conditions => ['category=?', params[:category]]} if params[:category]
    @events = CalendarEvent.find(:all, options)
end

答案 1 :(得分:0)

@events = CalendarEvent.all(
   :conditions => (params[:category] ? ["category = ?", params[:category]] : nil))