如何在插件中创建一个可由 Rails 3 中的所有内容访问的库函数?

发布于 2024-10-15 15:27:19 字数 263 浏览 2 评论 0原文

我想创建一个可以在我的 Rails 应用程序中的任何地方使用的插件库函数。我确信这一定很容易做到,但我似乎找不到如何做到这一点的示例。到目前为止我找到的所有教程都展示了如何仅扩展类或创建仅在模型或控制器内部工作的方法。

即使 RailsGuide 似乎也没有显示如何做到这一点。

嘿,谢谢你的帮助!

I would like to create a plugin library function that can be used anywhere in my rails app. I'm sure this must be very easy to do but I can not seem to find examples on how to do this. All the tutorials I've found so far show how to only extend classes or make methods that only work inside model or controllers.

Even RailsGuide does not seem to show how to do this.

Hey thanks for the help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

帅哥哥的热头脑 2024-10-22 15:27:19

最简单的方法是创建一个模块或类方法,然后调用它。例如:

module MySpecialModule
  def self.do_something
    puts 'hello world'
  end
end

然后,可以从任何地方调用以下内容:

MySpecialModule.do_something

如果您确实打算从 Ruby 中的每个对象调用 do_something 方法,那么您可以像这样扩展对象类:

class Object
  def do_something
    puts 'hello world'
  end
end

class K
end

K.new.do_something
=> hello world

您可以使用相同的方法来扩展任何基类,例如 ActiveRecord::Base。

The simplest way to do this is to create a module or class method and then call that. For example:

module MySpecialModule
  def self.do_something
    puts 'hello world'
  end
end

Then, the following can be called from anywhere:

MySpecialModule.do_something

If you are really intent on having your do_something method be called from every single object in Ruby, then you can extend the object class like this:

class Object
  def do_something
    puts 'hello world'
  end
end

class K
end

K.new.do_something
=> hello world

You can use this same method to extend any base class, for example ActiveRecord::Base.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文