Я хотел бы добавить новый файл JavaScript к моему расширению веселья
Я новичок в рельсах. Я пытаюсь создать расширение Spree для использования встроенного интерфейса Braintree. Я пытаюсь добавить новый braintree.js в мое расширение. Это шаги, которые я сделал до сих пор.
добавленной
braintree.js
в<my_extension>/app/assets/javascripts/spree/frontend/
добавленной
//= require spree/frontend/braintree
вapp/assets/javascripts/spree/frontend/<my_extension>.js
,созданный
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"
Из моего магазина я бежал
bundle install
, который был успешным.Ран
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