Mix.env/0正常工作mix phoenix.server,但无法在使用exrm构建的生产环境中调用.这是有意义的,因为mix不包含在发布版本中,但有没有相当于Mix.env/0?
(UndefinedFunctionError) undefined function Mix.env/0 (module Mix is not available)
Run Code Online (Sandbox Code Playgroud)
我在一些代码中使用了这样的Mix.env/0:
if Mix.env == :dev do
# xxxxxx
else
# xxxxxx
end
Run Code Online (Sandbox Code Playgroud) 如何在凤凰城设置一个语言环境,以使用priv/gettext/{lang} /LC_MESSAGES/errors.po?
作为测试,我用它构建了语言环境文件mix gettext.merge priv/gettext --locale ja,并在其中翻译了一些单词.
它的工作原理,如果我显式调用put_locale/2的web/views/error_helpers.ex,并<%= translate_error(message) %>在模板文件中,但它是一个有点难看,干点.
def translate_error(msg) do
Gettext.put_locale(LoginStudy.Gettext, "ja")
Gettext.dgettext(LoginStudy.Gettext, "errors", msg)
end
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来设置默认语言环境?我指定了default_localein config/config.ex,但它不起作用.
config :login_study, LoginStudy.Endpoint, default_locale: "ja",
Run Code Online (Sandbox Code Playgroud)
最好的祝福,
我想规范化用户通过a发布的Unicode(UTF-8)字符串<form>.是否有任何图书馆在Elixir(或凤凰城或Erlang)处理这些东西?我习惯在Python中这样做,但我不知道Elixir有这些库.
import unicodedata
import zenhan
import jctconv
def normalize(strings, unistr = 'NFKC')
norm = unicodedata.normalize(unistr, strings)
zenhan = zenhan.z2h(norm, mode=2)
katahira = jctconv.kata2hira(zenhan)
return katahira
Run Code Online (Sandbox Code Playgroud) 我正在编写一个插件,将访问日志放入一个文件中,就像普通的Web服务器一样.作为客户端IP地址的数据源,conn有remote_ip和peer.我应该使用哪种,它们之间有什么区别?
是否有任何文件描述了每个实体conn?
另外,我的插件就像下面的片段一样,从Elixir/Phoenix的角度来看是否自然?
Logger.info(
Enum.join([
"type:" <> "request",
"remoteip:" <> Enum.join(Tuple.to_list(conn.remote_ip), ","),
"method:" <> conn.method,
"path:" <> conn.request_path,
"status:" <> to_string(conn.status),
"size_res:" <> to_string(byte_size(to_string(conn.resp_body))),
], ",")
)
Run Code Online (Sandbox Code Playgroud) 我有一个函数,它返回一个从List(:erlang.memory())转换而来的Map.它按照我的预期工作,但似乎并不美观.如何将片段细化为更多的灵丹妙药(意味着更美妙的逻辑)?
{{:total, total}, {:processes, processes}, {:processes_used, processes_used}, {:system, system}, {:atom, atom}, {:atom_used, atom_used}, {:binary, binary}, {:code, code}, {:ets, ets}} =
:erlang.memory()
|> List.to_tuple()
params = %{
total: total,
processes: processes,
}
Run Code Online (Sandbox Code Playgroud)