Здравствуйте, я хочу показать форму поиска внутри навигационной панели только на индексной странице продуктов и странице показа продукта. Дело в том, что оно отображается как на странице индекса, так и на странице показа, но когда я нажимаю на дом, чтобы перейти к корневому пути, я получаю следующую ошибку:Rails navbar условный и получение Нет совпадений маршрутов в корне_path
Нет совпадений маршрутов {: action => "show",: controller => «продукты»} отсутствующие требуемые ключи: [: id]
Как я могу избежать этого? Это мой код в application.html.erb:
<% if current_page?(products_path) || (product_path) %>
<div class="col-sm-3 col-md-3 pull-right">
<form class="navbar-form" role="search">
<div class="input-group">
<input type="text" class="form-control" placeholder="Search" name="search_term" id="search_term">
<div class="input-group-btn">
<button class="btn btn-default" type="submit"><i class="glyphicon glyphicon-search"></i></button>
</div>
</div>
</form>
</div>
<% end %>
Ошибка, которую вы получаете, верна. Вы проверяете, является ли текущая страница продуктом или продуктом. Поскольку второй принимает идентификатор, он дает вам ошибку. Вы должны просто проверить текущий контроллер, как упомянуто @iceman. –