[英]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.