Есть ли лучший способ написать это?Можно ли сделать чисто в одну строку?
conditions = ["category = ?", params[:category]] if params[:category] @events = CalendarEvent.all( :conditions => conditions )
Не слишком много для консолидации, но у вас мало что происходит, поэтому это не должно иметь значения.
def action options = {:conditions => ['category=?', params[:category]]} if params[:category] @events = CalendarEvent.find(:all, options) end
@events = CalendarEvent.all( :conditions => (params[:category] ? ["category = ?", params[:category]] : nil))