Spree, Rails 3 и тематика

Что ж, я пытался изменить тему веселья по умолчанию, следуя этому руководству.

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

Но домашняя страница совсем не меняется, ну, поскольку учебник предназначен для рельсов 2, мне просто интересно, что мне нужно изменить в учебнике, чтобы он работал с рельсами 3?

Приветствуется более простое решение, чем использование хуков. Кроме того, пока я занимаюсь этим, есть ли способ отменить команду, которую вы запускаете в рельсах, например, удалив расширение.


person BimoZX    schedule 17.10.2010    source источник


Ответы (2)


  1. Решение, которое сработало для меня, состояло в том, чтобы создать собственное расширение, скажем, «сайт» с rails g spree:extention site, затем я посмотрел на свой путь к драгоценным камням и просто открыл весь драгоценный камень spree-core в другом проекте редактора и скопировал app/views/layouts/spree_application.html.erb.

Если ваш 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, и она вернет все операции, которые выполнялись во время ее генерации.

Сначала я боролся с основной частью, потому что в документации по этому вопросу слишком много пробелов, чтобы пользователь мог их понять впервые.

person Rytis Lukoševičius    schedule 04.12.2010
comment
спасибо за ответ, я не могу понять документацию. Это действительно помогает. - person BimoZX; 05.12.2010

Чтобы изменить тему 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

person Vincent    schedule 22.12.2010
comment
Спасибо, документ меня смущает, я думаю, что некоторые из них устарели. - person BimoZX; 22.12.2010