#controller
def search
if params[:search]
@query = params[:search][:query]
@age = params[:search][:age] unless params[:search][:age].blank?
unless params[:search][:course_category_id].blank?
@course_category = CourseCategory.find(params[:search][:course_category_id])
@selected_category = [@course_category.title, @course_category.id]
course_category_id = @course_category.id
end
end
@courses = Course.paged_search(@query, @age, course_category_id, params[:page] )
add_breadcrumb [_("VyhledávánÃ:") + ' ' + (@query || ""), nil ]
@course_categories = CourseCategory.find(:all)
end
#view
<%= select(:search, :age, [[_("Bez omezenÃ"), ""], [_("1 rok"), 1.year.ago.to_s(:db)], [_("1 mÄ›sÃc"), 1.month.ago.to_s(:db)], [_("1 týden"), 1.week.ago.to_s(:db)], [_("24 hodin"), 1.day.ago.to_s(:db)]], :selected => @selected_age )%>
Refactorings
No refactoring yet !
danielharan
October 7, 2008, October 07, 2008 14:40, permalink
Is this what's going on when params[:search] is nil?
def search Course.paged_search nil, nil, nil, params[:page] # ... add breadcrumb and course_categories end
Adam
October 7, 2008, October 07, 2008 14:46, permalink
class Course < ActiveRecord::Base
def self.search(search, page)
query = search[:query]
age = search[:age] unless search[:age].blank?
begin
category_id = CourseCategory.find(search[:course_category_id]).id
rescue ActiveRecord::RecordNotFound
end
paged_search(query, age, category_id, page)
end
end
class CoursesController < ApplicationController
before_filter :set_course_categories, :only => :search
def search
@courses = Course.search(params[:search] || {}, params[:page])
add_breadcrumb [ _("VyhledávánÃ: #{@courses.query}"), nil ]
end
private
def set_course_categories
@course_categories = CourseCategory.all
end
end
How would you make this code a little simpler and nicer? Thanks