ユーザーの行動に基づいてポイント/バッジ/ランクをユーザーに付与するために見つけた優れたプラグインを実装しています。これは Merit と呼ばれ、 https ://github.com/tute/merit で見つけることができます。
「投稿」と「タグ」の 2 つのモデルがあります。関連付けは次のとおりです。投稿には多くのタグがあり、タグは投稿に属しています。
ユーザーが「投稿」を作成すると、ポイントが付与されます。投稿コントローラーの「作成」アクションが呼び出されるたびにポイントを付与するようにプラグインを構成します。
問題:
サーバーを起動したら、関連付けられたタグを使用して新しい投稿を作成するフローを実行します。これは完全に機能します。コードを(コントローラーまたはモデルで)何らかの方法で編集するまで、完全に機能します。編集後、新しい投稿を作成しようとすると、次のエラーが発生します。
undefined method `attr_accessible' for Merit::Action:Class
ファイルの基本的な内容を変更する限り、どのような編集を行うかは問題ではないようです (これには、単にデバッグの「puts」ステートメントを追加することも含まれます)。この時点で、投稿を作成しようとするたびに同じエラーが発生するため、投稿をまったく作成できなくなりました。次に、WEBrick を再起動すると、再び機能します (コードを再度編集するまで)。
ここで何が起きてるの? コードを編集するという単純な行為によって、サーバーを再起動するまで Merit プラグインで attr_accessible が突然未定義になるのはなぜですか?