cor*_*bin 8 ruby ruby-on-rails ruby-on-rails-3
我想创建一个通用字符串操作类,可以在我的Rails应用程序中跨模型,视图和控制器使用.
现在,我正在尝试将一个Module放在我的lib目录中,而我只是试图访问rails console中的函数来测试它.我尝试过类似问题的很多技巧,但我无法让它发挥作用.
在我的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
Run Code Online (Sandbox Code Playgroud)
当我尝试调用sanitize_filename("some string")时,我得到一个no方法错误.当我尝试调用Filenames.sanitize_filename("some string")时,我得到一个未经过限制的常量错误.当我尝试包含'/ lib/filenames'时,我收到一个加载错误.
这是创建我可以在任何地方访问的方法的最常规方法吗?我应该创建一个类吗?
我怎样才能让它运转起来?:)
谢谢!
nac*_*bar 12
要获得一个非常好的答案,请查看Yehuda Katz在您的问题评论中引用的答案(实际上,请看一下).
在这种情况下,简短的答案是您可能没有加载您的文件.请参阅RyanWilcox为您提供的链接.您可以通过在文件中添加语法错误来检查此问题 - 如果在启动应用程序(服务器或控制台)时未提出语法错误,则表示文件未加载.
如果您认为正在加载它,请发布您用来加载它的代码.再次,请参阅RyanWilcox为您提供的详细信息链接.它包含此代码,该代码进入您的一个环境配置文件:
# Autoload lib/ folder including all subdirectories
config.autoload_paths += Dir["#{config.root}/lib/**/"]
Run Code Online (Sandbox Code Playgroud)
但实际上,请阅读耶胡达的回答.
| 归档时间: |
|
| 查看次数: |
11316 次 |
| 最近记录: |