Я смотрю на этот код из плагина raqu jquery autocomplete .. в строке 12 «items» задан как объект с областью видимости. Затем в следующие несколько строк кажется, что объект с областью видимости переназначается несколько раз.
Когда я запускаю код, кажется, что выполняется только 1 запрос, который является общей суммой всех областей действия ... (что здорово, просто не знаю почему). Означает ли это, что объект с областью действия накапливает области до конца метода, когда он выполняется? Или Active Record просто оптимизирует производительность, сводя к минимуму количество запросов, ожидая сбора всех запросов ... помогите мне понять :):
def get_autocomplete_items(parameters)
model = parameters[:model]
term = parameters[:term]
method = parameters[:method]
options = parameters[:options]
scopes = Array(options[:scopes])
limit = get_autocomplete_limit(options)
order = get_autocomplete_order(method, options, model)
items = model.scoped
scopes.each { |scope| items = items.send(scope) } unless scopes.empty?
items = items.select(get_autocomplete_select_clause(model, method, options)) unless options[:full_model]
items = items.where(get_autocomplete_where_clause(model, term, method, options)).
limit(limit).order(order)
end