Ну вот, чуть более компактная версия, специально для контроллера. Либо так, либо тащить всё во вьюху (в смысле все страницы), либо в этой самой вьюхе (или хелпере) делать запросы к базе. Иначе никак. Что скажете?
```ruby
def menu_main
  @menu = []
  parent_id = Page.find_by_slug(params['slug']).try(:id)
  begin
    menu_bar =  Page.where(hidden: false, parent_id: parent_id)
    @menu.push menu_bar if menu_bar.any?
    parent_id = Page.find_by_id(parent_id).parent_id
  end whlie parent_id
end
```