gpt4 book ai didi

clojure - 我如何使用 Clojure 及其 Web 框架实现类似于 Rails 的 url_for 的功能?

转载 作者:行者123 更新时间:2023-12-02 22:25:06 25 4
gpt4 key购买 nike

我正在使用 Clojure 开发一个 Web 应用程序,目前使用 Ring , Moustache , SandbarHiccup 。我有一个名为 job 的资源,以及一条以多步骤形式显示特定作业的特定步骤的路线,定义如下(为简单起见,省略了其他路线):

(def web-app
(moustache/app
;; matches things like "/job/32/foo/bar"
:get [["job" id & step]
(fn [req] (web.controllers.job/show-job id step))]))

在我的 Controller 呈现的 View 中,有指向同一作业中其他步骤的链接。目前,这些 url 是手动构建的,例如(str“/job/”id步骤)。我不喜欢 URL 中硬编码的 "/job/" 部分,因为它重复了我在 Mustache 路由中定义的内容;如果我改变路线,我需要改变我的 Controller ,这是一个比我关心的更紧密的耦合。

我知道 Rails 的路由系统有从参数生成 url 的方法,我希望我有类似的功能,即我希望有一个可以像这样调用的函数 url-for :

(url-for :job 32 "foo" "bar")
; => "/job/32/foo/bar"

是否有 Clojure Web 框架可以让这变得简单?如果没有,您对如何实现有何想法?

最佳答案

Noir 提供 something similar 。它甚至被称为url-for

关于clojure - 我如何使用 Clojure 及其 Web 框架实现类似于 Rails 的 url_for 的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9679573/

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