2010-10-17 45 views
8

嗯,我一直在努力按照这个教程狂欢,Rails 3中,和主题化

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

改变大礼包的默认主题,但网页没有,因为在所有的变化,以及教程是为轨道2,我只是想知道我需要从教程改变,以使其与轨道3的工作?

欢迎使用比使用挂钩更简单的解决方案。另外,当我在这里,有没有办法撤消你在rails中运行的命令,比如卸载扩展。

回答

6
  1. 为我工作的解决方案是创建自己的分机说“现场”与rails g spree:extention site然后我在宝石路已经看,只是揭开了另一个编辑器项目整体大礼包核心宝石和复制的app/views/layouts/spree_application.html.erb

如果你的html没有那么不同(我的http://daugpigiau.lt与我差异很大),你可能只能使用钩子并覆盖一些部分。仍然我发现要知道钩子名称的唯一方法是查看那些对我来说很有趣的spree核心宝石和模板。在你知道什么钩子是你感兴趣的后,你可以做类似这样的事情:

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 

这些只是我想要改变的地方的分支。

  • 是的,你可以撤消扩展生成部分作为其他任何一代人,你只需要运行rails destroy spree:extension your_extension_name,它会还原所有IT期间执行的操作的代
  • 我一直与最重要的部分一起努力,第一次导致这篇文章中的文档有太多的空白空间供第一次用户掌握。

    +0

    谢谢你的回答,我不能把我的头围绕文档。它确实有帮助。 – BimoZX 2010-12-05 08:19:57

    +0

    同意,文档是非常混乱,似乎已过时... – 2012-01-15 12:26:38

    3

    要更改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

    +0

    谢谢,文档混淆了我,我认为有些已经过时。 – BimoZX 2010-12-22 04:41:05