gpt4 book ai didi

tags - 如何从 .eex 文件调用函数

转载 作者:行者123 更新时间:2023-12-04 17:46:32 26 4
gpt4 key购买 nike

我正在尝试学习 Phoenix,但遇到了一个问题。在 Rails 中,我可以说

<%= Rails.version %>

获取显示在 .erb 文件中的当前 rails 版本。我问了如何在 Phoenix 做到这一点,得到了答案
:application.get_key(:phoenix, :vsn)

不幸的是,这突显了我在尝试使用 Phoenix 时的无知。当我放
<%= :application.get_key(:phoenix, :vsn) %>

在我的 .eex 文件中,我得到
no function clause matching in Phoenix.HTML.Safe.Tuple.to_iodata/1

请向我指出任何有助于我了解下一步尝试的文档。谢谢!

最佳答案

:application.get_env调用以以下格式返回一个元组:

{:ok, '1.0.0'}

Phoenix.HTML.Safe 没有解码这种格式的元组的功能 ( source )。
您需要从调用中提取版本:
<%= :application.get_key(:phoenix, :vsn) |> elem(1) %>

然而,更好的方法是使用辅助函数:
defmodule VersionHelper do
def version do
case :application.get_key(:phoenix, :vsn) do
{:ok, vsn} -> vsn
_ -> #raise or return null or something else
end
end
end

然后可以在您的 View 中使用 VersionHelper.version 调用它- 这意味着您对版本的获取与 phoenix 在 View 中使用的 key 无关。

关于tags - 如何从 .eex 文件调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32957668/

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