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 回答