在RoR 5.2应用程序中,我经常使用助手来检索要在表单中使用的选项列表:
<%= f.collection_select :status_id, statuses_list, :id, :name %>
其中statuses_list是我的parameters_helper.rb中的方法:
# retrieve the list of statuses
def statuses_list
list_id = ParametersList.where("code=?", 'LIST_OF_STATUSES').take!
Parameter.where("parameters_list_id=? AND ? BETWEEN active_from AND active_to", list_id, Time.now )
end
为此,application_controller.rb包含以下内容:
include SessionsHelper, ParametersHelper, UsersHelper
四处阅读,我发现不是立即包含所有帮助程序,而是可以为请求的方法加上前缀:helpers.statuses_list
或ParametersHelper::statuses_list
如前所述,这避免了预加载所有帮助程序,并使代码更清晰。
我无法通过这种方式工作,而我受困于incude方法 (可能是因为我逐渐从Rails 5.0升级而该功能最近才出现?)
您能告诉我这是否是一种好习惯吗?使其生效的先决条件是什么? 非常感谢!