gpt4 book ai didi

ruby - 花见 : access current page URL from views or templates

转载 作者:数据小太阳 更新时间:2023-10-29 08:29:40 25 4
gpt4 key购买 nike

那些日子我正在发现 Hanami(Hanami 1.3),我正在完善我从事的测试项目,但我找不到从 View 访问当前页面 url/路径的方法或模板(这个想法是处理导航链接的视觉状态,正如您可能已经猜到的那样)。

我尝试猜测助手名称(routes.current_pageroutes.current_urlroutes.current...)但是我一直不走运。我检查了 routing helpers documentation , 打通了 hanami/hanamihanami/router存储库,但没有找到我要找的东西。

我是不是漏掉了什么,或者这根本不是内置的?

最佳答案

目前,这是我最终做的事情。我关注了hanami documentation定义了一个自定义帮助器并使其可用于我的所有 View ,如下所示:

<强>1。创建一个 Web::Helpers::PathHelper 模块

在那里我可以访问参数和请求路径:

# apps/web/helpers/path_helper.rb
module Web
module Helpers
module PathHelper
private

def current_path
params.env['REQUEST_PATH']
end

def current_page?(path)
current_path == path
end
end
end
end

<强>2。确保 helpers 目录由应用程序加载

helpers 路径添加到应用程序 load_paths 变量,以便在应用加载代码时加载我的助手。

  # apps/web/application.rb
# Relative load paths where this application will recursively load the
# code.
#
# When you add new directories, remember to add them here.
#
load_paths << [
'helpers',
'controllers',
'views'
]

<强>3。确保我的新助手可用于每个 View

..通过使用 application.rb 中的 view.prepare block :

  # apps/web/application.rb
# Configure the code that will yield each time Web::View is included
# This is useful for sharing common functionality
#
# See: http://www.rubydoc.info/gems/hanami-view#Configuration
view.prepare do
include Hanami::Helpers
include Web::Assets::Helpers
include Web::Helpers::PathHelper
end

<强>4。现在我可以在每个 View 中使用我的助手了!

现在,从我的模板或我的 View 对象,我可以访问我自己的 current_pathcurrent_page?(path) 助手,并做我需要做的事情他们。我不知道这是否是最直接的方法,但至少它有效。

关于ruby - 花见 : access current page URL from views or templates,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55934778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com