【问题标题】:Spree, Rails 3, and themingSpree、Rails 3 和主题
【发布时间】:2010-10-17 06:47:46
【问题描述】:
【问题讨论】:
标签:
ruby-on-rails-3
e-commerce
spree
【解决方案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
这些只是我自己想要改变的地方的部分内容。
- 是的,您可以像其他任何一代一样撤消扩展生成部分,您只需运行
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 install 和rails g spree:extension myext
。它将正确创建所有文件并将其插入您的 Gemfile。然后你可以覆盖myext/app/views中的所有必要文件