当前位置:  开发笔记 > 后端 > 正文

在rails app中为内置类添加方法

如何解决《在railsapp中为内置类添加方法》经验,为你挑选了2个好方法。

我想在rails应用程序中向Array类添加一个方法.我应该把这个方法放在哪里?

编辑更清楚,显然我把它放在某个地方的文件中,但是如何告诉rails应用程序在哪里找到它?



1> Ron DeVera..:

一种方法是在lib/rails_extensions.rb.创建一个文件.然后,像这样添加您的扩展:

class Array
  def bring_me_food
    # ...
  end

  def make_tea
    # ...
  end
end

class Hash
  def rub_my_shoulders
    # ...
  end
end

然后config/environment.rb,添加:

require 'rails_extensions'

您对辅助对象的里程可能会有所不同.


你很幸运在你的环境中有这样的服务Hash和Array.

2> Colin Curtin..:

默认情况下,当您调用"require"时,Rails将查找(从Rails边缘源):

app app/metal app/models app/controllers app/helpers app/services lib vendor

为简单起见,将文件放在lib /中,并在config/environment.rb中按名称输入,或者将其放在config/initializers/array_extension.rb中,它将自动加载.

在我工作的地方,我们将所有扩展到核心Ruby库的插件,并将其存储在(Rails.root /)vendor/plugins/utilities/lib/core_ext中,然后我们需要在插件的init.rb.

另一种修饰这只猫的方法:如果你说,想要将你的核心扩展存储在Rails.root/core_ext中,那么你可以在environment.rb的配置块中添加该路径作为加载路径:

Rails::Initializer.run do |config|
  config.load_paths << 'core_ext'
end

然后你可以从任何地方调用"require'sray_extension'",它会加载.

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有