nop*_*ole 74 ruby ruby-on-rails ruby-on-rails-3
如果在Ruby on Rails上,我需要添加一个名为的方法
class String
def capitalize_first
# ...
end
end
Run Code Online (Sandbox Code Playgroud)
并想知道文件应该去哪里?(哪个目录和文件名,是否需要任何初始化代码?)这适用于Rails 3.0.6项目.
Mik*_*wis 131
我总是core_ext在我的目录中添加一个目录lib.
用于加载自定义扩展的创建和初始化程序(例如:) config/initializers/core_exts.rb.并在其中添加以下行:
Dir[File.join(Rails.root, "lib", "core_ext", "*.rb")].each {|l| require l }
Run Code Online (Sandbox Code Playgroud)
你的扩展名如下:
lib/core_ext/string.rb
class String
def capitalize_first
# ...
end
end
Run Code Online (Sandbox Code Playgroud)
njo*_*den 64
你可以在config/initializers/string.rb中完成
class String
def capitalize_first
# ...
end
end
Run Code Online (Sandbox Code Playgroud)
应该是你所需要的(除了app重启).
Rails 3.1中的指南是要走的路:
http://guides.rubyonrails.org/plugins.html#extending-core-classes
如果您遵循默认约定,则无需使用初始化程序配置.