0
在/ lib中我有一個test_module.rb文件有:/lib文件夾中有一個模塊test_module.rb,如何從我的User.rb模型中引用?
require 'digest'
module TestModule
def encrypt(string)
Digest::SHA2.hexdigest(string)
end
end
現在在我的User.rb我:
class user < ActiveRecord:Base
before_save :set_password
private
def set_password
self.encrypted_password = TestModule::encrypt(password)
end
end
我如何才能訪問這個方法,現在我m得到一個錯誤,說加密不是一個方法(未定義)。
我是否需要或包含此模塊?
我只是想調用方法ecrypt就像它的靜態方法真的,建議?
那麼我只需使用require'testmodule'或test_module或? – Blankman 2011-03-03 04:27:55
如果您使用的是導軌2,它應該可以正常工作。 rails 3他們從自動載入路徑下載lib,所以你需要做一些類似require「#{Rails.root}/lib/test_module」的事情。或者將lib添加回自動加載路徑http://hemju.com/2010/09/22/rails-3-quicktip-autoload-lib-directory-including-all-subdirectories/ – 2011-03-03 04:47:24
@ matt ..他們爲什麼放棄/ lib從自動加載路徑?..這是一個很好的默認設置.. – rubyprince 2011-03-03 05:10:59