首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Ruby on Rails中,为了扩展String类,代码应该放在哪里?

在Ruby on Rails中,为了扩展String类,代码应该放在哪里?
EN

Stack Overflow用户
提问于 2011-04-14 03:28:43
回答 3查看 31.7K关注 0票数 83

如果是在Ruby on Rails上,我需要添加一个名为

代码语言:javascript
复制
class String
  def capitalize_first
    # ...
  end
end

想知道文件应该放到哪里?(哪个目录和文件名,以及是否需要任何初始化代码?)这是针对Rails 3.0.6项目的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-14 03:33:35

我总是在我的lib目录中添加一个core_ext目录。

创建用于加载自定义扩展的initializer (例如:config/initializers/core_exts.rb)。并在其中添加以下行:

代码语言:javascript
复制
Dir[File.join(Rails.root, "lib", "core_ext", "*.rb")].each {|l| require l }

并让您的扩展名如下:

lib/core_ext/string.rb

代码语言:javascript
复制
class String
  def capitalize_first
    # ...
  end
end
票数 145
EN

Stack Overflow用户

发布于 2011-04-14 03:33:14

您可以在config/initializers/string.rb .rb中执行此操作

代码语言:javascript
复制
class String
  def capitalize_first
    # ...
  end
end

这应该是你所需要的(除了应用程序重启)。

票数 66
EN

Stack Overflow用户

发布于 2011-11-16 06:15:45

Rails 3.1中的指导方针是可行的:

http://guides.rubyonrails.org/plugins.html#extending-core-classes

如果你遵循默认的约定,你就不需要修改初始化器配置了。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5654517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档