0

我需要自定义 Spree (v1.1.1) 菜单,因为它实际上只有“主页”链接。

我尝试通过创建覆盖作为

Deface::Override.new(:virtual_path => "spree/shared/_main_nav_bar",
                 :name => "home-link",
                 :remove => "#home-link")

在这里,我只是想删除“Home”以查看它是否有效。而且我还尝试创建一个视图/app/views/spree/shared/_main_nav_bar.html.erb,但什么也没有,我无法让它工作。

我能怎么做?那么,为什么有时它会覆盖模板,而有时我确实需要覆盖来改变基本布局?我已经阅读了该指南,但我找不到任何关于此的解释。它不应该只适用于我的覆盖/自定义视图吗?

4

2 回答 2

1

我刚遇到和你类似的问题。结果,我创建了 gem 来管理 spree 中的菜单栏:spree_essential_menus

我认为它可以帮助你:-)

于 2012-06-13T06:09:24.493 回答
0

您正在匹配一个不存在的文件。您要查找的文件位于https://github.com/spree/spree/blob/1-1-stable/core/app/views/spree/shared/_store_menu.html.erb

所以你希望你的代码看起来像这样:

Deface::Override.new(:virtual_path => "spree/shared/_store_menu",
             :name => "home-link",
             :remove => "#home-link")

当您浏览 github 上的 spree 视图时,请确保您正在查看您正在使用的版本的分支。“_main_bar_nav.html.erb”在 1.1.stable 分支上不存在,但在 master 上存在。

至于什么时候用哪个,那要看你想换多少了。如果你正在做小的调整,我会使用 deface。如果您正在检修整个视图系统(通常在大型构建中推荐),那么您想要替换视图。

于 2012-06-06T22:41:39.410 回答