`

插件扩展(2)

阅读更多

ruby:1.9.2

rails3.0.3

 

学习编写插件的这个过程中,自动引入plugin中的models, controllers等组件的过程中,加入以下代码出现这样的问题

http://guides.rubyonrails.org/plugins.html#models

 

加入代码:

%w{ models }.each do |dir|
  path = File.join(File.dirname(__FILE__), 'app', dir)
  $LOAD_PATH << path
  ActiveSupport::Dependencies.load_paths << path
  ActiveSupport::Dependencies.load_once_paths.delete(path)
end

 

问题:

/root/NetBeansProjects/rails-demo/vendor/plugins/yaffle/lib/yaffle.rb:10:in `block in <top (required)>': undefined method `load_paths' for ActiveSupport::Dependencies:Module (NoMethodError)
        from /root/NetBeansProjects/rails-demo/vendor/plugins/yaffle/lib/yaffle.rb:5:in `each'
        from /root/NetBeansProjects/rails-demo/vendor/plugins/yaffle/lib/yaffle.rb:5:in `<top (required)>'
        from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:239:in `require'
        from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:239:in `block in require'
        from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:227:in `load_dependency'
        from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:239:in `require'
        from /root/NetBeansProjects/rails-demo/vendor/plugins/yaffle/rails/init.rb:2:in `block in <class:Plugin>'
 

 

没有找到load_paths方法,最后在源代码中查看,没有发现load_paths与load_once_paths方法。这两个方法是在2.3.5的版本中发现了,是不是升级到3.0.3的时候,给删除了。

 

在3.0.3中,使用了autoload_paths与load_once_paths,这是前两个方法的替换方法。把代码换成以下代码就通过测试了

%w{ models }.each do |dir|
  path = File.join(File.dirname(__FILE__), 'app', dir)
  $LOAD_PATH << path
  ActiveSupport::Dependencies.autoload_paths << path
  ActiveSupport::Dependencies.autoload_once_paths.delete(path)
end

 

 

[1]http://guides.rubyonrails.org/plugins.html#models

[2]http://rubydoc.info/docs/rails/3.0.0/frames

 

 

分享到:
评论

相关推荐

    基于 web 端的 Markdown 编辑器,支持协同编辑扩展和方便的插件扩展

    markdown下载基于 web 端的 Markdown 编辑器,支持协同编辑扩展和方便的插件扩展基于 web 端的 Markdown 编辑器,支持协同编辑扩展和方便的插件扩展基于 web 端的 Markdown 编辑器,支持协同编辑扩展和方便的插件...

    跨域cors扩展插件chrome

    标题中的“跨域cors扩展插件chrome”指的是用于解决Web应用程序跨域问题的Chrome浏览器扩展。在Web开发中,由于浏览器的同源策略限制,不同源的资源(比如域名、协议或端口不同)之间无法直接进行交互。CORS(Cross-...

    eclipse扩展点介绍 插件

    在本文中,我们将深入探讨Eclipse的扩展点及其对开发者的重要性,同时也会提及如何通过插件来利用这些扩展点。 **一、Eclipse扩展点的概念** Eclipse的扩展点是它插件系统的核心组成部分,它定义了插件可以插入或...

    openwrt插件扩展大全ipk3100个对应功能中文 解释

    openwrt插件扩展大全ipk3100个对应功能中文 解释

    trixie IE扩展插件

    trixie IE扩展插件 IE插件 开发扩展自己的ie的插件 类是google浏览器的插件

    App Inventor扩展插件

    最近新接触了App Inventor开发,感觉对新手开发App是比较容易上手的开发形式,App Invebtor是简单的可视化编程,相比于Android Studio是对新手比较友善,这里整理了两个常见的扩展插件,http://app.gzjkw.net/。

    dreamweaver 插件扩展包

    2. **扩展的概念**: 扩展在Dreamweaver中指的是对软件功能的增强或补充,通常由一系列相关的插件组成。一个扩展可能包含代码提示、行为、面板、菜单项等,提供一站式的解决方案,如前端开发框架集成、响应式设计...

    微软HEVC视频扩展插件(免费)

    微软HEVC视频扩展插件,安装后可以观看杜比视效的视频资源,免费提供 微软HEVC视频扩展插件是一款由微软提供的扩展,用于在Windows 10系统中解码和播放HEVC(High Efficiency Video Coding)编码的视频文件。HEVC是...

    Eclipse常用插件扩展点

    本篇文章将深入探讨Eclipse插件开发中的关键知识点,包括插件扩展点、RCP(Rich Client Platform)应用开发以及如何在Eclipse RCP中整合第三方库。 首先,让我们了解Eclipse插件扩展点。扩展点是Eclipse平台提供的...

    vscode c/c++扩展插件

    VSCode的C/C++扩展插件,通常称为`ms-vscode.cpptools`,是由微软开发的官方插件,用于提供C/C++语言的语法高亮、代码补全、调试支持等功能。这个插件的版本号为0.8.1,意味着它已经经过了多次迭代和优化,以满足...

    Chrome插件-有道词典划词扩展插件

    Chrome插件-有道词典划词扩展插件,适用于有英文翻译需求的人员,可以方便快捷的即时翻译,协助英文阅读。

    chrome扩展插件获取ajax请求记录

    总之,Chrome扩展插件获取Ajax请求记录是一项重要的Web开发技能,它可以帮助开发者优化应用性能,调试网络问题,提升开发效率。了解如何利用Chrome的内置工具和扩展插件进行网络请求分析是每个前端开发者不可或缺的...

    VS2022 扩展插件 打包安装 插件

    VS2022 扩展插件 打包安装 插件。原始链接 :https://marketplace.visualstudio.com/items?itemName=VisualStudioClient.MicrosoftVisualStudio2022InstallerProjects 下载老是网络失败。 好不容易下到,共享出来!

    啊~真香系列之 Yapi 浏览器扩展插件

    2. **快速发送请求**:通过扩展,用户可以直接在浏览器上发起 HTTP 请求,测试 API 功能,而无需借助其他工具如 Postman。 3. **接口同步**:与 Yapi 平台无缝对接,可以将浏览器中的接口信息一键同步到 Yapi,便于...

    app inventor的tcp扩展插件

    **TCP扩展插件在App Inventor中的应用** App Inventor是Google推出的一款基于积木式编程的手机应用程序开发工具,适合初学者进行简单的移动应用开发。在开发过程中,如果需要实现设备之间的通信功能,比如通过WiFi...

    C# 构建可扩展的应用程序(插件)

    插件架构是一种实现可扩展性的方式,它允许程序在运行时动态加载新的功能或组件,而无需重新编译整个应用程序。本篇文章将深入探讨C#中如何利用插件技术构建可扩展的应用程序。 首先,我们要理解什么是插件。插件...

    jquery easyui pagination 分页插件扩展

    在本案例中,我们关注的是"jquery easyui pagination 分页插件扩展",这是一个用于增强默认分页功能的自定义插件。 分页在数据展示中扮演着重要的角色,特别是在处理大量数据时,它能让用户按需加载和浏览数据,...

    Eclipse插件开发扩展点大全(中文)

    2. **View Extensions**(视图扩展):用于创建和定制Eclipse工作台中的视图,例如项目浏览器、任务列表等。 3. **Editor Extensions**(编辑器扩展):使插件能提供新的代码编辑器,支持特定语言的语法高亮、自动...

    openwrt 通用 扩展插件ipk大全全中文解释下载

    它提供了高度可定制的网络功能,允许用户通过安装各种插件扩展其功能。本资源是针对OpenWRT的一个通用扩展插件IPK大全,包含全中文解释,方便中国用户理解和使用。 IPK(IPackage)是OpenWRT软件包管理系统所采用的...

    PS图片出血扩展插件-Image Extend-1.0.0中文汉化版.zip

    2. **精确调整**:用户可以根据需要设置出血的宽度和高度,确保扩展区域的准确无误。 3. **保留边框**:对于包含边框或文字的设计,插件可能会有特殊处理方式,确保这些元素在扩展后仍保持在安全区域内。 4. **...

Global site tag (gtag.js) - Google Analytics