【问题标题】:Spree, Rails 3, and themingSpree、Rails 3 和主题
【发布时间】:2010-10-17 06:47:46
【问题描述】:

好吧,我一直在尝试按照本教程更改 spree 的默认主题

http://blog.endpoint.com/2010/01/rails-ecommerce-spree-hooks-tutorial.html

但是主页根本没有改变,因为本教程是针对 rails 2 的,我只是想知道我需要从教程中进行哪些更改才能使其与 rails 3 一起使用?

欢迎使用比使用钩子更简单的解决方案。另外,当我这样做时,有没有办法撤消您在 rails 中运行的命令,例如卸载扩展程序。

【问题讨论】:

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


    【解决方案1】:
    1. 对我有用的解决方案是使用rails g spree:extention site 创建我自己的扩展名“站点”,然后我查看了我的 gems 路径并在另一个编辑器项目中打开了整个 spree-core gem 并复制了 @ 987654323@。

    如果您的 html 与默认的狂欢商店没有什么不同(我的在 http://daugpigiau.lt 完全不同),您可能只能使用钩子并覆盖某些部分。我发现知道钩子名称的唯一方法仍然是查看那些对我来说很有趣的疯狂核心宝石和模板。在您知道您对哪些钩子感兴趣后,您可以执行以下操作:

    class PigiauHooks < Spree::ThemeSupport::HookListener
      # custom hooks go here
      insert_after :admin_inside_head, 'shared/admin/ckeditor_include'
      insert_before :admin_product_form_meta, 'shared/admin/product_editor'
      insert_before :admin_product_form_additional_fields, 'shared/admin/unavailable_on'
    end
    

    这些只是我自己想要改变的地方的部分内容。

    1. 是的,您可以像其他任何一代一样撤消扩展生成部分,您只需运行rails destroy spree:extension your_extension_name,它将恢复在生成期间执行的所有操作

    起初我一直在努力解决最重要的部分,因为这部分的文档对于第一次使用的用户来说有太多的空白。

    【讨论】:

    • 感谢您的回答,我无法绕开文档。真的很有帮助。
    【解决方案2】:

    要更改 Spree 的默认主题,您需要生成自己的扩展并覆盖其中 spree_core-0.30.1/app/views 的视图文件。但是,当前版本的 Spree 中存在一个小错误,可能会使主题和扩展创建非常混乱。根据文档,要创建新扩展,您应该运行以下命令:

    $ rails g spree:extension myext
    

    它应该产生以下输出:

     create  myext
     create  myext/db
     create  myext/public
     create  myext/LICENSE
     create  myext/Rakefile
     create  myext/README.md
     create  myext/.gitignore
     create  myext/myext.gemspec
     create  myext/lib/tasks/install.rake
     create  myext/app
     create  myext/app/controllers
     create  myext/app/helpers
     create  myext/app/models
     create  myext/app/views
     create  myext/spec
      exist  myext/lib
     create  myext/lib/myext_hooks.rb
     create  myext/lib/tasks/myext.rake
     create  myext/lib/myext.rb
     create  myext/spec/spec_helper.rb
    gemfile  myext
    

    但是,输出是:

    create  myext
    create  myext/config
    create  myext/db
    create  myext/public
    create  myext/LICENSE
    create  myext/Rakefile
    create  myext/README.md
    Could not find ".gitignore" in any of your source paths. Your current source paths are:
    

    目前的解决方法是换行

    gem 'spree'
    

    在您的 Gemfile 中

    gem 'spree', :git => "git://github.com/railsdog/spree.git", :tag => "v0.30.1"
    

    然后再次运行bundle installrails g spree:extension myext 。它将正确创建所有文件并将其插入您的 Gemfile。然后你可以覆盖myext/app/views中的所有必要文件

    【讨论】:

    • 谢谢,这个文档让我很困惑,我认为有些已经过时了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多