应该如何访问 /lib 中的查看辅助方法?

Posted

技术标签:

【中文标题】应该如何访问 /lib 中的查看辅助方法?【英文标题】:How should view helper methods from /lib be accessed? 【发布时间】:2015-05-19 04:29:36 【问题描述】:

我在 [app]/lib 下的 Modules 中封装了一些方法,lib 文件夹已添加到 config.autoload_paths,我还将 Include MyHelper 添加到 ApplicationController 类中。

错误(在视图中)是:

undefined local variable or method 

我正在使用 lib 目录,因为这些方法不是特定于应用程序的。

呃,有一条关于“更多”代码的注释。

lib/my_helper.rb

module MyHelper
   def my_tag
       "<div>hello</div>"
   end
end

config/application.rb

... 
config.autoload_paths << "#Rails.root/lib"
...

app/controllers/application_controller.rb

class ApplicationController < ActionController::Base
    include MyHelper
    ...
end

app/views/layouts/application.html.erb

...
<%= my_tag %>
...

【问题讨论】:

请发布更多代码。 为什么不直接把你的助手模块放到 app/helpers floder 中呢? 简单地说......这是一个通用方法。它不应该在 app/helpers 文件夹中。 【参考方案1】:

应该使用helper MyHelper 而不是include MyHelper

【讨论】:

以上是关于应该如何访问 /lib 中的查看辅助方法?的主要内容,如果未能解决你的问题,请参考以下文章

单元测试数据访问层 - 测试更新方法?

包私有类中的`public`修饰符

ASP.NET Core 中的 IHttpActionResult 和辅助方法

Java继承和组合

开发中的辅助工具

Natasha相关辅助类