Доступ к рельсам 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).