如何从 .eex 文件调用函数
How to call functions from a .eex file
我正在努力学习凤凰,运行进了一道题。在 Rails 我可以说
<%= Rails.version %>
获取 .erb 文件中显示的当前 rails 版本。我询问了如何在 Phoenix 中执行此操作,并得到了答案
:application.get_key(:phoenix, :vsn)
不幸的是,这凸显了我的无知运行ce,因为我试图与 Phoenix 一起成长。当我把
<%= :application.get_key(:phoenix, :vsn) %>
在我的 .eex 文件中,我得到
no function clause matching in Phoenix.HTML.Safe.Tuple.to_iodata/1
请向我指出任何可以帮助我了解下一步尝试的文档。谢谢!
:application.get_env
调用 returns 元组格式:
{: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
然后可以在您的视图中使用 VersionHelper.version
调用它 - 这意味着您获取的版本与 phoenix 在视图中使用的密钥无关。
我正在努力学习凤凰,运行进了一道题。在 Rails 我可以说
<%= Rails.version %>
获取 .erb 文件中显示的当前 rails 版本。我询问了如何在 Phoenix 中执行此操作,并得到了答案
:application.get_key(:phoenix, :vsn)
不幸的是,这凸显了我的无知运行ce,因为我试图与 Phoenix 一起成长。当我把
<%= :application.get_key(:phoenix, :vsn) %>
在我的 .eex 文件中,我得到
no function clause matching in Phoenix.HTML.Safe.Tuple.to_iodata/1
请向我指出任何可以帮助我了解下一步尝试的文档。谢谢!
:application.get_env
调用 returns 元组格式:
{: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
然后可以在您的视图中使用 VersionHelper.version
调用它 - 这意味着您获取的版本与 phoenix 在视图中使用的密钥无关。