gpt4 book ai didi

ruby-on-rails - 如何跨模型共享代码? ( rails 2.3)

转载 作者:行者123 更新时间:2023-12-03 23:22:30 27 4
gpt4 key购买 nike

我想在模型之间共享几种方法,而不是复制和粘贴它们。在 Controller 中,我可以通过将方法放在 application_controller.rb 中来做到这一点,它会自动包含在每个 Controller 中。
模型有类似的东西吗?

谢谢!

最佳答案

您可以创建一个名为 functionality.rb 的文件。或 lib 中的类似内容Rails 应用程序的目录。制作以模块命名的文件,以便在 Rails 启动时自动加载它。例如,如果我想为多个模型添加标记,我会创建一个名为 lib/flagging.rb 的文件。 ,它看起来像这样:

module Flagging
# Flags an object for further review
def flag!
self.update_attribute(:flagged, true)
end

# Clears all flags on an object
def deflag!
self.update_attribute(:flagged, false)
end
end

在我想添加此功能的每个模型中,我都会执行以下操作:
class Foo < ActiveRecord::Base
include Flagging
end

然后我就可以做类似的事情:
foo = Foo.create
foo.flag!

关于ruby-on-rails - 如何跨模型共享代码? ( rails 2.3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2352946/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com