Доступ к рельсам url помощник от порчи

Я включаю Шпрее на существующий сайт. Я изменяю заголовок spree с Deface, чтобы вместо этого отображать заголовок моего сайта. Поэтому я использую следующий код Deface DSL

<!-- replace_contents "header[data-hook]" -->
<%= render :partial => "layouts/my_site_header.html.erb" %>

И внутри _my_site_header.html.erb У меня есть что-то вроде этого

<ul>
    <li><%= link_to "Home", home_path %></li>
    <li><%= link_to "Game", game_path %></li>
    <li><%= link_to "Community", community_path %></li>
</ul>

Что дает мне следующую ошибку

undefined local variable or method `home_path' for #<#<Class:0x8a73c20>:0x8af0e58>

Я понял, что код выполняется Deface в области Spree, поэтому помощники по URL моего сайта не определены. Я мог бы решить это, используя полное имя метода, как Rails.application.routes.url_helpers.home_path

Тем не менее, мне не хочется добавлять это для всех моих ссылок. Разве нет способа сообщить Spree о включении помощников по URL моего сайта? Пожалуйста помоги!

1 ответ

Решение

Существует более короткая версия, которую вы можете использовать из Rails::Engine, называемая main_app.

<ul>
    <li><%= link_to "Home", main_app.home_path %></li>
    <li><%= link_to "Game", main_app.game_path %></li>
    <li><%= link_to "Community", main_app.community_path %></li>
</ul>

Я настоятельно рекомендую использовать это, чтобы избежать конфликтов между вашим приложением и Spree (например, ваше приложение дома против дома Spree).

Другие вопросы по тегам