Я заметил, что действие "index" моего контроллера вызывается дважды.
Действие имеет следующую структуру:
def index
if params[:tags].nil?
# [fork #1] just return the whole collection of model
@items = Item.all
else
# [fork #2] filter items by tags
@items = Item.select_by_tags params[:tags]
end
# Another operations with @items
# The result will be incorrect, because, when tags in params are specified,
# controller action will be first executed for fork #2, and then for fork #1.
# In view, i get @items from fork #2 and result of THIS piece of code for fork #1
end
На странице у меня есть ссылки с URL-адресами, например «/items?tags=tag1, tag2», щелкнув по ним, я получаю действие «index», вызываемое дважды.
Я понятия не имею, почему это происходит...