ruby rails_autolink不能加载的原因
2015-01-10 14:00
453 查看
从rails 3.1.0开始,默认在ActionView::Helper::TextHelper中的auto_link方法已经被移除,放到了第三方的gem里:rails_autolink.遂想试一下其功能,于是将rails_autolink写入rails程序中的Gemfile中,使用bundle install下载安装.打开irb,依次输入如下命令:
require "rails"
require 'action_view'
require 'rails_autolink'
include ActionView::Helpers::TextHelper
可以无法找到方法auto_link哦!查看rails_autolink中的helper.rb源代码文件,看到其是将auto_link放入了TextHelper模块中啊!遂写一个测试代码:
然后执行 require './m.rb',然后使用ActionView::Helpers::TextHelper.instance_methods查看:
发现xxx方法的确写入模块了!那么为毛auto_link无法写入呢?再看一下require 'rails_autolink'的开头包含代码,路径在gem which rails_autolink中:
傻了吧!人家是需要在ActiveSupport加载的时候啊!估计是注册一个回调函数然后等加载action_view的时候再加载吧?我用load 'active_support.rb'然后再试还是不行.
解决办法有2个:
1.直接require 'rails_autolink/helpers'
2.在rails程序文件夹下使用rails console进入irb然后测试auto_link
require "rails"
require 'action_view'
require 'rails_autolink'
include ActionView::Helpers::TextHelper
可以无法找到方法auto_link哦!查看rails_autolink中的helper.rb源代码文件,看到其是将auto_link放入了TextHelper模块中啊!遂写一个测试代码:
#!/usr/bin/ruby module M module ::ActionView module Helpers module ::TextHelper def xxx puts "xxx" end end end end end
然后执行 require './m.rb',然后使用ActionView::Helpers::TextHelper.instance_methods查看:
=> [:concat, :safe_concat, :truncate, :highlight, :excerpt, :pluralize, :word_wrap, :simple_format, :cycle, :current_cycle, :reset_cycle, :xxx, :raw, :safe_join]
发现xxx方法的确写入模块了!那么为毛auto_link无法写入呢?再看一下require 'rails_autolink'的开头包含代码,路径在gem which rails_autolink中:
module RailsAutolink class Railtie < ::Rails::Railtie initializer 'rails_autolink' do |app| ActiveSupport.on_load(:action_view) do require 'rails_autolink/helpers' end end end end
傻了吧!人家是需要在ActiveSupport加载的时候啊!估计是注册一个回调函数然后等加载action_view的时候再加载吧?我用load 'active_support.rb'然后再试还是不行.
解决办法有2个:
1.直接require 'rails_autolink/helpers'
2.在rails程序文件夹下使用rails console进入irb然后测试auto_link
相关文章推荐
- ruby rails_autolink不能加载的原因
- ruby rails_autolink不能加载的原因
- 【求助】Vs2005当前不能命中断点 自动加载用户控件问题【找到部分原因】
- margin:0 auto;不能居中的原因
- 网站发布,CSS文件和图片不能加载原因之一
- 关于Sound Pool加载短小音频不能播放的原因
- webpack less 后不能生成一个link而是多个style标签,常见原因
- Class.forName不能加载abstract原因
- FPGA加载bit文件可以工作,加载mcs不能工作的原因
- Android新编译的内核驱动模块不能被init加载原因解决
- win7系统开机启动项不能加载的原因分析及解决
- Discuz 页面不能加载插件的原因和解决方法
- wamp5 ver2.0c不能加载gb2库的原因
- struts和spring集成时不能加载struts.xml文件的原因
- UI 不能加载的原因
- Excel插件不能加载原因总结
- vmware不能加载USB可能的原因
- html/js调用ocx控件(activex控件),不能加载,不能使用的原因
- FragmentStatePagerAdapter第二次加载时不能显示其界面的原因及解决办法
- linux驱动程序开发上面例子pipe.c不能在内核2.6.35加载的原因