gpt4 book ai didi

ruby-on-rails - 插件未在开发模式下重新加载

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

我写的插件有一个奇怪的问题。奇怪的是,我有另一个插件可以打开各种 ActiveRecord 类,并且自动重新加载没有问题。

在我的插件 init.rb 文件中

User.class_eval do
has_one :reputation
include Karma
alias :rep :reputation
end

如果我在生产模式或 Rails 控制台中运行它,则没有问题。当我在开发中运行它时,它会加载一次,但除非我重新启动服务器,否则不会再次加载。

我在我使用的其他插件 (acts_as_readable) 中找不到任何特别之处,它以相同的方式打开用户。


编辑:

我做了:

ActiveRecord::Base.class_eval do
class << self
def has_karma_values
has_one :reputation
alias :rep :reputation
end
end
end

在插件的init.rb文件中做了

class User < ActiveRecord::Base
...
has_karma_values
...
end

并得到关于 has_karma_values 不存在的相同错误。此时尚未加载插件。

令人困惑的是 acts-as-readable 与

完全没有问题
User.class_eval do
has_many :readings
end

ActiveRecord::Base.send :include, ActiveRecord::Acts::Readable

但我的确实如此。

这是我完整的 init.rb 文件

require 'reputation'
require 'karma_name'
require 'karma_tag'
require 'karma_title'
require 'acts_as_karmable'
require 'karma'
require File.expand_path('../lib/generators/karma_generator', __FILE__)

KarmaTitle.setup 'Default'

ActiveRecord::Base.class_eval do
class << self
def has_karma_values
has_one :reputation
alias :rep :reputation
end
end
end

ActiveRecord::Base.send :include, ActiveRecord::Acts::Karmable

这是错误 /home/david/apps/ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/base.rb:1014:in method_missing':未定义的局部变量或方法 has_karma_values' for #<Class:0x9ad1b24> (NameError)

最佳答案

这应该有效:

# plugin init.rb
Rails.configuration.to_prepare do
User.class_eval do
has_one :reputation
include Karma
alias :rep :reputation
end
end

关于ruby-on-rails - 插件未在开发模式下重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7072758/

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