我想将新的javascript文件添加到我的spree扩展名中 [英] I would like to add new javascript file to my spree extension
问题描述
我是新手.我正在尝试构建Spree扩展以使用Braintree的嵌入式UI.我正在尝试将新的braintree.js添加到扩展名中.这些是我到目前为止所做的步骤.
I am new in rails. I'm trying to build Spree extension to use Braintree's drop-in UI. I'm trying to add new braintree.js to my extension. These are the steps I did so far.
-
将
braintree.js
添加到<my_extension>/app/assets/javascripts/spree/frontend/
已将//= require spree/frontend/braintree
添加到app/assets/javascripts/spree/frontend/<my_extension>.js
.
在<my_extension>/config/initializers/
中创建了braintree.rb
.该文件的内容:
Created braintree.rb
in <my_extension>/config/initializers/
. Content of this file:
Braintree::Configuration.environment = :sandbox
Braintree::Configuration.merchant_id = "merchant_id"
Braintree::Configuration.public_key = "public_key"
Braintree::Configuration.private_key = "private_key"
在狂欢商店中,我成功运行了bundle install
.
Ran rails g <my_extension>:install
这给了我以下错误:
Ran rails g <my_extension>:install
which gives me the following error:
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)
推荐答案
您需要在gemspec中要求braintree gem作为依赖项,然后要求它lib/spree_hello_ext.rb才能对其进行初始化,然后再进行初始化.用它.类似于spree_gateway对spree_core的要求: https://github.com/spree/spree_gateway/blob/master/lib/spree_gateway.rb#L1
You need to require the braintree gem in your gemspec as a dependency, and then require it lib/spree_hello_ext.rb for it to be initialized before your initializer tries to use it. Similar to how spree_core it required by spree_gateway: https://github.com/spree/spree_gateway/blob/master/lib/spree_gateway.rb#L1
这篇关于我想将新的javascript文件添加到我的spree扩展名中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!