Sar*_* S. 8 ruby jquery ruby-on-rails rails-engines ruby-on-rails-4
我正在创建一个使用gem"jquery-rails"的rails mountable引擎插件.我在.gemspec文件中添加了此代码
s.add_dependency "jquery-rails", "~> 3.0.1"
Run Code Online (Sandbox Code Playgroud)
并运行bundle install,bundle update.(BTW是否需要添加?因为rails mountable引擎已经添加了"rails 4.0.1",这反过来又要求"jquery-rails 3.0.4"作为它的依赖从一开始?).
在app/assets/javascript/mountable_engine_name/application.js中
//= require jquery
//= require jquery-ujs
//= require_tree .
Run Code Online (Sandbox Code Playgroud)
但是当我在test/dummy /上运行服务器并访问任何使用该标签的模板时,<%= javascript_include_tag "mountable_engine_name/application" %>它显示错误"找不到文件'jquery'".
我尝试创建一个全新的可安装引擎插件,但它发生的情况相同.
我做错什么了吗?
PS.对不起我的英语不好.
更新
实际上它发生在app/assets/javascript /和test/dummy/app/assets/javascript /中需要jquery和jquery-ujs的所有清单文件中.
jgp*_*tko 17
我知道原来的问题是在几个月前被问到的,但我在使用Rails引擎教程时遇到了同样的问题,所以我发帖以防万一这有助于其他人......
我发现我需要更新四个文件:
1.)为.gemspec文件添加依赖项
#file: <your engine name>.gemspec
s.add_dependency "jquery-rails", "~> 3.1.1"
Run Code Online (Sandbox Code Playgroud)
2.)更新您的引擎application.js文件:
#file: <your engine name>/app/assets/javascripts/blorgh/application.js
...
//= require jquery
//= require jquery_ujs
//= require_tree .
Run Code Online (Sandbox Code Playgroud)
3.)更新您的父app app.js文件:
#file: <your engine name>/test/dummy/app/assets/javascripts/application.js
...
//= require jquery
//= require jquery_ujs
//= require_tree .
Run Code Online (Sandbox Code Playgroud)
4.)根据此SO线程,您需要向engine.rb文件添加一个require:
#file: lib/<your engine name>/engine.rb
module <your engine name>
class Engine < ::Rails::Engine
require 'jquery-rails'
isolate_namespace Blorgh
end
end
Run Code Online (Sandbox Code Playgroud)
和平.
您应该在gem的主文件中需要jquery-rails.
如果你有一个名为"foo"的宝石,请在它的主文件中这样做:
# lib/foo.rb
require "jquery-rails"
# ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3221 次 |
| 最近记录: |