0

ファイル内で、helper/posts_helper.rb次のようなメソッドを定義しています。

module PostsHelper
    def testing(test)
        "Yep its a #{test}"
    end
end

このテスト ヘルパーは、投稿ビュー内でのみ機能するはずです。しかし、それは私のアプリケーションの他のリソースのビューであっても、私のすべてのビューで機能します。私はこれを入れていませんapplication_helper.rb。なぜそれが起こるのですか?

これが私のapplication_controller.rb

class ApplicationController < ActionController::Base
  # Prevent CSRF attacks by raising an exception.
  # For APIs, you may want to use :null_session instead.
  protect_from_forgery with: :exception
end
4

2 に答える 2

3

Rails が特定のコントローラーのヘルパーのみをロードするというのはよくある誤解です。デフォルトでは、Rails はすべてのヘルパーをロードします。application.rb で次の行を設定する必要があります。

config.action_controller.include_all_helpers = false

これにより、期待するヘルパー (コントローラー用のものと、ApplicationHelper などの継承チェーン内のもの) のみが読み込まれます。

于 2013-07-16T13:30:49.877 に答える
0

helper :allアプリケーションコントローラーなど、どこかを確認してください。

于 2013-07-16T13:25:47.830 に答える