2

Rails3.2アプリケーションでrails-footnotesgemを使用していますが、脚注にパーシャルの存在を登録させることができないようです。常にゼロのパーシャルカウントが表示されます。

このようにビューに表示されているパーシャルの数と部分を簡単に知ることができるのは非常に便利だと思うので、これを機能させたいと思います(残りはうまく機能します)が、何がわかりません問題は、他の誰かが同じ問題を抱えていて、それを解決できたことを望んでいます。見逃した可能性のある設定はありますか?

関連性はないと思いますが、OSX 10.6.8を使用していて、gemをSublime Text 2で正しく動作させるのに問題がありましたが、解決されました(詳細はこのStackOverflowの回答にあります)。

更新

erbテンプレートで期待どおりの出力が得られるため、この問題はhamlテンプレートにのみ存在するようです。erbテンプレートのみがカウント/認識されているように見えます...?

アップデート2

以下の@DonHopkinsの回答により、すべてのHamlテンプレートがRailsFootnotesに登録されました。私はそれを次のように設定ファイルに入れました:

config / initializers / rails_footnotes.rb

if defined?(Footnotes) && Rails.env.development?
  Footnotes.run! # first of all
  Footnotes::Notes::LogNote::LoggingExtensions.module_eval do
    def add(*args, &block)
      super
      logged_message = args[2] + "\n"
      Footnotes::Notes::LogNote.log(logged_message)
      logged_message
    end
  end

  # ... other init code
  Footnotes::Filter.prefix = 'subl://open?url=file://%s&line=%d&column=%d'
end 
4

1 に答える 1

5

hamlではなくerbテンプレートを使用していますが、同様の問題が発生しました。Rails-脚注にモンキーパッチで修正しました。

rails-footnotesコード(バージョン3.7.9)を見ると、問題はこのメソッドにあるように見えました。

module Footnotes
  module Notes
    class LogNote < AbstractNote
      ...
      module LoggingExtensions
        def add(*args, &block)
          logged_message = super
          Footnotes::Notes::LogNote.log(logged_message)
          logged_message
        end
      end
      ...
    end
  end
end

このメソッドは、がログに記録されているメッセージを返すことaddを前提としていますが、私のテストではブール値を返していました。この問題を解決するために、footnotes_patch.rbというファイルを次のように作成しました。supersuper

Footnotes::Notes::LogNote::LoggingExtensions.module_eval do
  def add(*args, &block)
    super
    logged_message = args[2] + "\n"
    Footnotes::Notes::LogNote.log(logged_message)
    logged_message
  end
end

解決策を試したい場合は、そのファイルをconfig / initializersに入れてから、アプリケーションを再起動してください。

于 2012-12-17T17:06:03.427 に答える