Шпрее, Rails 3 и тематика - PullRequest
       11

Шпрее, Rails 3 и тематика

8 голосов
/ 17 октября 2010

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

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

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

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

Ответы [ 2 ]

6 голосов
/ 04 декабря 2010
  1. Решение, которое сработало для меня, состояло в том, чтобы создать собственное расширение, скажем, 'site' с 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

Это только мои собственные части мест, которые я хотел изменить.

Да, вы можете отменить часть генерации расширений, как любое другое поколение, которое вам просто нужно запустить rails destroy spree:extension your_extension_name, и оно вернет все операции, которые были выполнены во время его генерации

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

3 голосов
/ 22 декабря 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

...