gpt4 book ai didi

ruby-on-rails - 使用模块扩展带有 "has_many"的插件中的模型

转载 作者:数据小太阳 更新时间:2023-10-29 07:08:51 25 4
gpt4 key购买 nike

我在引擎样式插件中有一些代码,其中包含一些模型。在我的应用程序中,我想扩展其中一个模型。通过在初始值设定项中包含一个模块,我已经设法将实例和类方法添加到相关模型中。

但是我似乎无法添加关联、回调等。我收到“找不到方法”错误。

/libs/qwerty/core.rb

module Qwerty
module Core
module Extensions

module User
# Instance Methods Go Here

# Class Methods
module ClassMethods
has_many :hits, :uniq => true # no method found

before_validation_on_create :generate_code # no method found

def something # works!
"something"
end
end

def self.included(base)
base.extend(ClassMethods)
end
end
end
end
end

/initializers/qwerty.rb

require 'qwerty/core/user'

User.send :include, Qwerty::Core::Extensions::User

最佳答案

你应该能够做到这一点。更简洁的恕我直言。

module Qwerty::Core::Extensions::User
def self.included(base)
base.class_eval do
has_many :hits, :uniq => true
before_validation_on_create :generate_code
end
end
end

关于ruby-on-rails - 使用模块扩展带有 "has_many"的插件中的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1519413/

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