私が書いたプラグインに奇妙な問題があります。変わったのは、さまざまなActiveRecordクラスを開く別のプラグインが1つあり、自動リロードに問題はないということです。私は開発モードでプラグインが再ロードされない
User.class_eval do
has_one :reputation
include Karma
alias :rep :reputation
end
を持っているプラグインinit.rbファイルで
私は本番モードまたはレールコンソールでそれを実行した場合は問題がありません。私はそれを一度ロードしますが、私はサーバーを再起動しない限り、開発でそれを実行するとき。
私は(acts_as_readable)を使用している他のプラグインで特別なものを見つけられず、同じ方法でユーザーを開きます。
編集:
私がやった:plugiinのinit.rbファイル内
ActiveRecord::Base.class_eval do
class << self
def has_karma_values
has_one :reputation
alias :rep :reputation
end
end
end
とは
class User < ActiveRecord::Base
...
has_karma_values
...
end
を行なったし、存在しないhas_karma_valuesについても同じエラーを取得します。プラグインはこの時点でロードされていません。混乱している何
は行為-として可読が
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)
それは問題を解決したようです、ありがとうございます。これは生産現場で重複ロードを引き起こすでしょうか?私はまだacts_as_readableがこの小さなハックを必要としない理由を知りたいです。非常に奇妙な不一致。 – david
'#to_prepare'は各要求/応答サイクルの開始時に開発時に呼び出され、初期化の直後には1回だけ生成時に呼び出されます。 – yfeldblum
ありがとうございます。 – david