Я хотел бы добавить новый файл JavaScript к моему расширению веселья

Я новичок в рельсах. Я пытаюсь создать расширение Spree для использования встроенного интерфейса Braintree. Я пытаюсь добавить новый braintree.js в мое расширение. Это шаги, которые я сделал до сих пор.

  1. добавленной braintree.js в <my_extension>/app/assets/javascripts/spree/frontend/

  2. добавленной //= require spree/frontend/braintree в app/assets/javascripts/spree/frontend/<my_extension>.js,

  3. созданный braintree.rb в <my_extension>/config/initializers/, Содержание этого файла:

    Braintree::Configuration.environment = :sandbox
    Braintree::Configuration.merchant_id = "merchant_id"
    Braintree::Configuration.public_key = "public_key"
    Braintree::Configuration.private_key = "private_key"
    
  4. Из моего магазина я бежал bundle install, который был успешным.

  5. Ран rails g <my_extension>:install что дает мне следующую ошибку:

    append  vendor/assets/javascripts/spree/frontend/all.js
    append  vendor/assets/javascripts/spree/backend/all.js
    insert  vendor/assets/stylesheets/spree/frontend/all.css
    insert  vendor/assets/stylesheets/spree/backend/all.css
    run  bundle exec rake railties:install:migrations FROM=spree_hello_ext 
    
    from "."
    Would you like to run the migrations now? [Y/n] y
    run  bundle exec rake db:migrate from "."
    rake aborted!
    NameError: uninitialized constant Braintree
    /Users/<user>/Sites/spree_hello_ext/config/initializers/braintree.rb:1:in 
       `<top (required)>'
    /Users/<user>/Sites/hellostore/config/environment.rb:5:in `<top (required)>'
    Tasks: TOP => db:migrate => environment
    (See full trace by running task with --trace)
    

1 ответ

Вы должны требовать драгоценный камень braintree в своем gemspec как зависимость, а затем требовать его lib/spree_hello_ext.rb для его инициализации до того, как ваш инициализатор попытается его использовать. Аналогично тому, как spree_core требуется для spree_gateway: https://github.com/spree/spree_gateway/blob/master/lib/spree_gateway.rb#L1

Другие вопросы по тегам