如何自定义Spree的视图?

时间:2016-05-30 21:02:16

标签: ruby-on-rails ruby e-commerce spree

我坚持使用Spree建立一个新的电子商务网站。我已尝试覆盖管理员视图,但我不知道如何建立管理员帐户,因此无法登录。

我也想尝试编辑宝石本身。我试过"捆绑开放的spree_frontend"在我的终端上并回来了#34;要打开捆绑的宝石,请设置$ EDITOR或$ BUNDLER_EDITOR"我编辑了.bash_profile,以便"导出EDITOR =" subl -w" export BUNDLER_EDITOR =" subl" "但我仍然得到同样的回应。

我一直试图阅读文档,但我被困了。任何人都可以给我任何建议或帮助吗?

编辑:我想出了如何让自己成为管理员,但我仍然无法弄清楚如何完全自定义index.html.erb或其他视图。

2 个答案:

答案 0 :(得分:2)

我不太确定您是否需要知道如何更改管理员根索引页,或者是否要自定义任何视图。所以,这里有两个答案。

有关如何自定义任何视图的说明:

要记住的是,Spree只是一个rails引擎。 All rails engine views can be overwritten by adding a view in the same location on the main rails application.狂欢的令人困惑的部分是项目的结构。

如果查看Spree project on github,您会看到它分为四个部分:核心,前端,后端和api 。每个部件都像一个小型轨道引擎本身。因此,后端部分使用app / views / spree / admin文件夹来显示所有管理员视图。

秘诀是复制要自定义的视图,将其放在应用程序中的正确位置,然后进行更新。

因此,如果您尝试自定义管理产品索引页面go to github并将代码复制到backend/spree/app/views/admin/products/index.html.erb并将其粘贴到app / views / spree / admin / products / index中的项目中.html.erb

我有一些更详细的说明over on quora,特别是有关版本2.3前端更新的内容,如果您认为某些图片可能会有所帮助。

如何自定义管理员根索引视图:

2.4或更高版本

如果您尝试更改管理员索引的根路径,则需要为管理员根控制器创建控制器装饰器,并覆盖索引操作,然后在app / views / spree / admin /上构建视图root / index.html.erb使它看起来像你想要的那样。

应用/控制器/礼包/管理/ root_controller_decorator.rb

module Spree
  module Admin
    RootController.class_eval do

      def index
        # add any custom controller code here you need
        # it will load the view at app/views/spree/admin/root/index.html.erb
        # by convention
      end
    end
  end
end

2.3或更低版本

早期版本的狂欢只依赖于routes file to redirect orders#index。只需在路径文件中添加一个新条目,指向要引导流量的位置,然后构建控制器#动作并查看以提供内容。

坦率地说,你可以为版本2.4及更高版本做同样的事情,但是较新的版本将认证结合到根控制器中,所以不需要重新发明轮子。

答案 1 :(得分:0)

关于尝试制作管理员

user = User.find_by(email: "master@example.com")
user.spree_roles << Spree::Role.find_or_create_by(name: "admin")

http://guides.spreecommerce.org/developer/authentication.html#the-user-model-1