4

我需要一个地方来粘贴全局引用透明的实用程序方法。这些应该可以从 Rails 中的任何地方访问(模型、视图、控制器和其他任何地方)。例如:

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

最好的方法是什么?

4

2 回答 2

12

你总是可以坚持这些/lib并要求它们。请参阅砌砖者的回答——您可以要求从您的 加载这些模块application.rb,这将使它们在任何地方都可以访问。

请参阅:Rails lib 目录

于 2012-09-06T22:00:24.387 回答
3

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

/lib/add_parse_boolean_to_string.rb

class String

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

end
于 2012-09-06T23:54:32.903 回答