![](/img/trans.png)
[英]What's the right way to make new methods available to views from a Rails Gem?
[英]What is the simplest way to make a group of methods available to several Rails applications
我可以创建一个可以在许多应用程序中使用的视图助手模块的简单方法是什么?
什么文件,位于哪里,加载怎么样?
我在Rails 2.3.11上。
我有一堆视图辅助方法。 以下是其中一个示例:
# Render form input fields to add or edit a ZIP code.
def render_zip_code_fields( model_instance )
# Bla bla bla ...
end
我有大约20年左右的时间,我已经开发了多年,经常用于各种应用程序。 我想将它们全部包装在一个文件中,我可以直接进入应用程序,然后可以在我的视图中调用它们。
为什么不将它们复制并粘贴到application_helper.rb
? 这对我来说感觉不对。 它似乎应该是一个单独的文件。
事实上我尝试在/lib
创建...
# /lib/my_view_helpers.rb
module MyViewHelpers
# ...
end
然后在application_helper.rb
我把......
include MyViewHelpers
但是我得到了很多“未初始化的常量MyViewHelpers错误。可能是语法错误?我认为我不需要首先require
my_view_helpers.rb
因为它在/lib
。那里的所有内容都会被自动加载,对吧?
那么为简单起见进行优化的正确方法是什么?
对不起,这么久。 我累的时候会变得冗长。
从Rails 3开始, /lib
不再位于默认加载路径上。 您需要将以下行放在config/application.rb
中的Application
类中。
config.autoload_paths += ["#{config.root}/lib"]
另一种方法是将文件放在app/helpers
因为它毕竟是一个帮手。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.