【发布时间】:2013-08-25 21:46:59
【问题描述】:
我想创建一个通用的字符串操作类,可以在我的 Rails 应用程序中跨模型、视图和控制器使用。
现在,我正试图将一个模块放在我的 lib 目录中,我只是试图在 rails 控制台中访问该函数来测试它。我已经尝试了很多类似问题的技术,但我无法让它发挥作用。
在我的 lib/filenames.rb 文件中:
module Filenames
def sanitize_filename(filename)
# Replace any non-letter or non-number character with a space
filename.gsub!(/[^A-Za-z0-9]+/, ' ')
#remove spaces from beginning and end
filename.strip!
#replaces spaces with hyphens
filename.gsub!(/\ +/, '-')
end
module_function :sanitize_filename
end
当我尝试调用 sanitize_filename("some string") 时,我收到一个无方法错误。当我尝试调用 Filenames.sanitize_filename("some string") 时,我得到一个未初始化的常量错误。当我尝试包含“/lib/filenames”时,会出现加载错误。
这是创建可以在任何地方访问的方法的最传统方法吗?我应该创建一个类吗?
我怎样才能让它工作? :)
谢谢!
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3