嘿伙计我想将一个方法扩展到Sinatra中的String类,在erb文件中,做类似的事情
<%= 'some string'.my_method %>
但我不知道如何输入定义代码:
String.class_eval do
def my_mythod
some_code
end
end
顺便说一句,我正在使用sinatra模块化编码风格
答案 0 :(得分:0)
似乎无论我把它放在哪里都能工作(这是一个很好的观察吗?) 在脚本开始时评估的任何地方
将其与所有其他字段和方法一起放在app类中
也应该在助手类中工作
答案 1 :(得分:0)
我倾向于在lib / ext文件夹下的自己的文件中粘贴这样的代码。然后,您可以从Sinatra应用程序中获取此文件。
在lib / ext / string.rb下:
class String
my_mythod
some_code
end
end
然后将以下内容添加到Sinatra应用程序中,假设您的基类文件位于lib文件夹中:
require File.dirname(__FILE__) + '/ext/string'
我有兴趣看看人们对此的看法。