從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