2012-09-06 26 views
2

我需要一个位置来粘贴全局引用透明的实用程序方法。这些应该可以从rails(模型,视图,控制器和其他地方)的任何地方访问。如何在导轨中创建全局实用程序功能

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

这样做的最好方法是什么?

+2

你想说'GlobalUtilities.make_me_a “煎饼”'或'只是make_me_a “煎饼”'? –

回答

10

你总是可以将这些贴在/lib并需要它们。请参阅bricker's answer - 您可以要求从您的application.rb加载这些模块,这将使它们无处不在。

参见:Rails lib directory

+0

如果您正在尝试向预先存在的数据类型添加功能,Bill的答案并不是一个坏主意。 – varatis

3

我会做的,你都希望实现每个行为描述性名称的文件,并在/ lib下收集他们(或更好,但发动机)。然后,将所需的功能混合到您希望扩展的课程中。例如,在您描述的场景中,您可以直接将parse_boolean方法添加到String。漂亮的东西。

/lib/add_parse_boolean_to_string.rb

class String 

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

end 
相关问题