Have you tried to use the "imperative style" the README mentions on https://github.com/karmi/tire ? This is a straight quote from the readme:
search = Tire::Search::Search.new('articles')
search.query { string('title:T*') }
search.filter :terms, :tags => ['ruby']
search.sort { by :title, 'desc' }
search.facet('global-tags') { terms :tags, :global => true }
# ...
p search.results
Maybe the "declarative" style folds to much blocks inside each other, and then the context (current_user) is lost. How exactly did you insert the current_user_id in your boolean condition?