ruby rails_autolink不能加载的原因

    从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模块中啊!遂写一个测试代码:

#!/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

时间: 2024-11-01 00:54:09

ruby rails_autolink不能加载的原因的相关文章

救命啊,救命啊 下列信息有助于确定程序集“System.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”无法加载的原因

问题描述 问题是我开发的时候用的是.net3.0vwd2008做完后发布到服务器上,服务器上是.NET2.0出现下列信息有助于确定程序集"System.Core,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"无法加载的原因的错误,请高手给指点如何解决呢?急!!!!!!!!!!!! 解决方案 解决方案二:.net3.0..........NET2.0解决方案三:公钥对么?解决方案四:引用1楼jzywh的回复

php_curl.dll libssh2.dll 始终无法加载的原因 及解决办法

  在StackOverflow得到最终原因及解决办法 http://stackoverflow.com/questions/16424117/php-unable-to-load-php-curl-dll-extension libeay32.dll and ssleay32.dll have to be path-accessible for php_curl.dll loading to succeed. Copying them into System32 (or even into t

System.BadImageFormatException: 未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项。试图加载格式不正确的程序。

        本机环境:Win7 32位,开发工具:vs2008         今天更新webservices的时候,如下图:               报出了下面的错误:                  在服务端打开asmx文件时,错误信息如下: "/"应用程序中的服务器错误. 未能加载文件或程序集"Oracle.DataAccess"或它的某一个依赖项.试图加载格式不正确的程序. 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,

关于程序加载错误的处理

程序|错误|加载 我在程序开发中,遇到了这个一个问题,当我调试程序时出现如下错误 "/Drom_Manage"应用程序中的服务器错误. -------------------------------------------------------------------------------- 配置错误 说明: 在处理向该请求提供服务所需的配置文件时出错.请检查下面的特定错误详细信息并适当地修改配置文件. 分析器错误信息: 访问被拒绝:"microsoft.web.ui.w

未能加载文件或程序集“AspNet.ScriptManager.jQuery”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集

问题描述 说明:执行当前Web请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息.异常详细信息:System.BadImageFormatException:未能加载文件或程序集"AspNet.ScriptManager.jQuery"或它的某一个依赖项.生成此程序集的运行时比当前加载的运行时新,无法加载此程序集.源错误:执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息.程序集加载跟

服务器程序集加载问题!急求!

问题描述 我用VS2013开发的项目现在要在WIN2003上跑就出现这个错误了!是.NET版本太低吗?我要装WIN2008吗?"/"应用程序中的服务器错误.--------------------------------------------------------------------------------配置错误说明:在处理向该请求提供服务所需的配置文件时出错.请检查下面的特定错误详细信息并适当地修改配置文件.分析器错误消息:未能加载文件或程序集"Microsoft

asp.net 未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。_实用技巧

说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.BadImageFormatException: 未能加载文件或程序集"XXX"或它的某一个依赖项.试图加载格式不正确的程序. 源错误: 执行当前 Web 请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息. 程序集加载跟踪: 下列信息有助于确定程序集"XXX"无法加载的

cortex a9 jtag-IMX6Q JTAG加载UBOOT失败原因

问题描述 IMX6Q JTAG加载UBOOT失败原因 UBoot加载问题点:用JTAG连接板卡,出现报错"Load Debugger fs3",截图如附件. 板卡最小系统参数: - CPU:Freescale IMX6Q Cortex-A9 - DDR3:Micorn 2Gb(32位) - Flash:Micron 256M(8位) 测试发现问题点: - 主晶振24M没有起振(更换16pF~36pF均如此---不振:测试晶振的电平XTALI/O均为457mV,NVCC_PLL_OUT电

使用Donetbar控件,出现“设计器加载程序未提供根组件 但没有指出原因”错误如何解决

问题描述 使用Donetbar控件,出现"设计器加载程序未提供根组件 但没有指出原因"错误如何解决 使用donetbar控件搭建winform窗体应用程序,在用到SuperTabControl的SelectedTabChanged方法时,只要后台代码有改动,设计界面就会变成空白,去掉这个方法就正常,请问这是什么问题,如何解决? 解决方案 应该是你的dotnetbar是破解的或者版本和你用的.net框架不匹配造成的.