В контроллере имеется метод Index, который. в зависимости от того была ли отправлена форма на фильтрацию - выводит записи.
То есть на странице со списком пользователей имеется форма, которая отправляет запрос в текущий контроллер методом GET. И если параметры для фильтрации небыли переданы, то выводятся все записи. Если были переданы - то какие именно и по ним фильтрует записи и выводит уже отфильтрованные.
Есть ли возможность условия в методе filter упростить. с учетом того, что будет до 11 параметров фильтрации?
def index
@filteruser = User.new
cnf = nil
user = params[:user]
def filter(user)
@username = user[:name]
@userlastname = user[:lastname]
# Еще 9 параментров
@username&&@userlastname ? cnt = User.where(:name => @username, :lastname => @userlastname) : false
@username&&@userlastname.blank? ? cnt = User.where(:name => @username) : false
@username.blank? && @userlastname ? cnt = User.where(:lastname => @userlastname) : false
# Еще дохрена условий??
@users = cnt
end
user ? filter(user) : @users = User.all
@user_cnt = @users.count
end
Буду очень признателен за совет по упрощению выборки либо же направление куда гуглить, заранее благодарен