Вот что яЕсть ли элегантный лайнер для добавления областей, хранящихся в массиве, используя .send()?
в настоящее время, я делаю это:
current_account.send(object).search(params[:search]).user_id_equals_any(users).visibility_is_any(visibilities)
, но это еще не очень гибок? Что, если я хочу условно не иметь одну из этих областей?
Я полагаю, что массив областей с условно добавленных элементов будет хорошим решением
Массив параметров, которые я хотел бы вызвать с помощью Пошлите()
scopes = []
scopes = << [:user_id_equals_any, users] if filter_users
scopes = << [:visibility_is_any, visibilities] if filter_visibility
Таким образом, я мог бы иметь какой-то неизвестный числовые области.
Для выполнения областей, мне нужно, чтобы вызвать .send(:scope_name, scope_param)
Но как я могу это сделать для любого количества областей в моем scopes
массиве?
В петле, я думаю, было бы что-то вроде
result = current_account.send(object).search(params[:search])
scopes.each do |scope|
result.send(scope[0], scope[1])
end
return result
петля может быть упрощенно
scopes.each {|s| result.send(s[0], s[1]) }
но есть способ, чтобы добавить различные вызовы посыла в одной строке?
почему объект в Teh Inject ли блокировать 'response' – NullVoxPopuli
@TheLindyHop:.. это была опечатка, что только что получил фиксированной Спасибо –