如何在rails中创建全局实用程序功能

时间:2012-09-06 21:48:55

标签: ruby-on-rails ruby

我需要一个坚持全球参考透明实用方法的地方。这些应该可以从rails(模型,视图,控制器和其他任何地方)的任何地方访问。 e.g:

bool = GlobalUtilities.to_bool "false"
unicorn = GlobalUtilities.make_me_a "unicorn"

最好的方法是什么?

2 个答案:

答案 0 :(得分:10)

你总是可以将它们粘贴在/lib中并要求它们。请参阅bricker's answer - 您可以要求从application.rb加载这些模块,这样就可以随处访问这些模块。

请参阅:Rails lib directory

答案 1 :(得分:3)

我会为您希望实现的每个行为创建一个描述性命名的文件,并在/ lib(或者更好的是引擎)中收集它们。然后,将您想要的功能混合到您希望扩展的类中。例如,在您描述的方案中,您可以直接向parse_boolean添加String方法。漂亮的东西。

/lib/add_parse_boolean_to_string.rb

class String

  def parse_boolean
    self == 'true' # or whatever...
  end

end