我需要一个地方来粘贴全局引用透明的实用程序方法。这些应该可以从 Rails 中的任何地方访问(模型、视图、控制器和其他任何地方)。例如:
bool = GlobalUtilities.to_bool "false"
unicorn = GlobalUtilities.make_me_a "unicorn"
最好的方法是什么?
我需要一个地方来粘贴全局引用透明的实用程序方法。这些应该可以从 Rails 中的任何地方访问(模型、视图、控制器和其他任何地方)。例如:
bool = GlobalUtilities.to_bool "false"
unicorn = GlobalUtilities.make_me_a "unicorn"
最好的方法是什么?
你总是可以坚持这些/lib
并要求它们。请参阅砌砖者的回答——您可以要求从您的 加载这些模块application.rb
,这将使它们在任何地方都可以访问。
请参阅:Rails lib 目录
我会为您希望实现的每个行为创建一个描述性命名的文件,并将它们收集在 /lib (或者,更好的是,一个引擎)中。然后,将您想要的功能混合到您希望扩展的类中。例如,在您描述的场景中,您可以将parse_boolean
方法直接添加到String
. 很光滑的东西。
/lib/add_parse_boolean_to_string.rb
class String
def parse_boolean
self == 'true' # or whatever...
end
end