【问题标题】:access rails url helper from deface从 deface 访问 rails url helper
【发布时间】:2013-08-17 22:58:02
【问题描述】:

我将 Spree 添加到现有网站。我正在使用 Deface 更改 spree 标题以呈现我网站的标题。因此我使用以下 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>

我知道代码是在 Spree 范围内由 Deface 执行的,因此我的网站的 url 帮助程序是未定义的。我可以使用完整的方法名称来解决这个问题,例如Rails.application.routes.url_helpers.home_path

但是,我真的不想为我的所有链接添加这个。没有办法告诉 Spree 包含我网站的 url 助手吗?请帮忙!

【问题讨论】:

    标签: ruby-on-rails spree deface


    【解决方案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 的主页)。

    【讨论】:

    • 非常感谢 :) 这么小的帮手可以到处为我添加
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-20
    • 1970-01-01
    • 2020-06-17
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    相关资源
    最近更新 更多