Spree генератор не работает, когда тип "rails g spree site" - PullRequest
0 голосов
/ 21 ноября 2011

Привет, я новичок в разработке приложений для rails, и я заинтересован в использовании 'spree' для моего сайта электронной коммерции.

Я следую этому уроку в спрее с этого сайта http://guides.spreecommerce.com/getting_started.html

  1. Я сделал новую установку, как указывалось выше в руководстве.Я сделал это в части '5.1 Запуск Spree', используя rails 1.9.3 и базу данных mysql.Все было хорошо, пока я не заметил, что панель входа не появилась, как в учебнике.

  2. Я провел небольшое исследование, которое привело меня к этому решению в https://github.com/railsdog/deface/issues/12, что я понимаюиз этой статьи кажется, что проблема возникает из-за ошибки в геме порчи при использовании ruby ​​1.9.3, но проблема не появляется в 1.9.2, поэтому я изменил свою версию ruby ​​на 1.9.2, чтобы попробовать ее.

  3. После того, как я установил ruby ​​1.9.2, я установил гем spree Я повторил проект (используя базу данных mysql) из учебника по началу работы, чтобы закончить учебник.

  4. теперь в части 4.4.2, где я набираю 'rake db: create' терминал выводит этот

    store $ rake db: create

    store_test уже существует
    store_development уже существует

  5. Когда я пытаюсь сгенерировать сайт веселья с помощью 'rails g spree: site', терминал выдает мне эту ошибку

store  rails g spree:site
          create  config/spree.yml /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/spree_core-0.70.2/lib/generators/spree/site/site_generator.rb:16:in
    `block in config_spree_yml': undefined method `version' for
    Spree:Module (NoMethodError)    from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/actions/create_file.rb:54:in
    `call'  from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/actions/create_file.rb:54:in
    `render'    from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/actions/create_file.rb:63:in
    `block (2 levels) in invoke!'   from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/actions/create_file.rb:63:in
    `open'  from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/actions/create_file.rb:63:in
    `block in invoke!'  from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/actions/empty_directory.rb:114:in `call'  from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/actions/empty_directory.rb:114:in `invoke_with_conflict_check'    from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/actions/create_file.rb:61:in
    `invoke!'   from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/actions.rb:95:in
    `action'    from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/actions/create_file.rb:26:in
    `create_file'   from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/spree_core-0.70.2/lib/generators/spree/site/site_generator.rb:15:in
    `config_spree_yml'  from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/task.rb:22:in
    `run'   from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/invocation.rb:118:in
    `invoke_task'   from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/invocation.rb:124:in
    `block in invoke_all'   from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/invocation.rb:124:in
    `each'  from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/invocation.rb:124:in
    `map'   from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/invocation.rb:124:in
    `invoke_all'    from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/group.rb:226:in
    `dispatch'  from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/base.rb:389:in
    `start'     from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.2/lib/rails/generators.rb:168:in
    `invoke'    from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.2/lib/strong textrails/commands/generate.rb:12:in `<top (required)>'  from
    /Usestrong textrs/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.2/lib/active_support/dependencies.rb:240:in
    `require'   from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.2/lib/active_support/dependencies.rb:240:in
    `block in require'  from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.2/lib/active_support/dependencies.rb:223:in
    `block in load_dependency'  from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.2/lib/active_support/dependencies.rb:640:in
    `new_constants_in'  from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.2/lib/active_support/dependencies.rb:223:in
    `load_dependency'   from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.2/lib/active_support/dependencies.rb:240:in
    `require'   from
    /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.2/lib/rails/commands.rb:28:in
    `<top (required)>'  from script/rails:6:in `require'    from
    script/rails:6:in `<main>' 
  1. Я был довольно смущен, потому что я нене создавать базу данных раньше (но это показывает, что она существовала).И теперь я не могу даже создать сайт веселья.Я исследовал эту проблему в течение нескольких дней и пока не нашел подходящего решения.Вот так выглядит мой Gemfile

    source 'http://rubygems.org'

    gem 'rails', '3.1.2'
    
    # Bundle edge Rails instead:
    # gem 'rails',     :git => 'git://github.com/rails/rails.git'
    
    gem 'mysql2'
    
    
    # Gems used only for assets and not required
    # in production environments by default. group :assets do   gem 'sass-rails',   '~> 3.1.5.rc.2'     gem 'coffee-rails', '~> 3.1.1'  
    gem 'uglifier', '>= 1.0.3' end
    
    gem 'jquery-rails'
    
    # To use ActiveModel has_secure_password
    # gem 'bcrypt-ruby', '~> 3.0.0'
    
    # Use unicorn as the web server
    # gem 'unicorn'
    
    # Deploy with Capistrano
    # gem 'capistrano'
    
    # To use debugger
    # gem 'ruby-debug19', :require => 'ruby-debug'
    
    group :test do   # Pretty printed test output   gem 'turn', '0.8.2',
    :require => false
    
    gem 'spree' , '0.70.2'
    
    end 
    
  2. Я был бы очень признателен, если бы кто-нибудь дал мне несколько советов или решений по моим проблемам.Я сейчас совершенно потерян, это наверняка сделает кого-то счастливым.(скажите, если вам нужна дополнительная информация о моей среде ruby)

Ответы [ 3 ]

1 голос
/ 28 ноября 2011

Только что понял - у вас есть "gem 'spree' ..." внутри группы ": test".Нехорошо.Не копайтесь с Gemfile - просто добавьте самоцвет Spree в конце.

1 голос
/ 02 декабря 2012

На сегодняшний день (2 декабря 2012 г.) текущей версией spree, которая совместима с ruby ​​1.9.3 и rails 3.2.9, является spree -v '1.2.2 "

http://spreecommerce.com/blog/2012/11

Версия 1.3 будет выпущена в декабре 2012 года

Я не эксперт, но я думаю, вам нужно изменить свой гемфайл на

gem 'spree', '1.2.2'
1 голос
/ 28 ноября 2011

Вы начали со свежего приложения на Rails? Вот что я сделал (вчера), используя Ruby 1.9.2p290, Rails 3.1.1 на Fedora 16:

  1. Убедитесь, что ImageMagick установлен - скрипт начальной загрузки не будет работать без него.

  2. Запустить rails новое имя приложения --database mysql

  3. cd appname

  4. Добавить gem, 'spree', '0.70.3' в Gemfile

  5. Запустить пакет

  6. Настроить database.yml

  7. Запустить rake db: create - игнорировать ошибки в любой базе данных

  8. Запустить rails generate spree: site - игнорировать любые ошибки в базе данных

  9. Запустить рейк дБ: начальная загрузка

Так и должно быть.

...