小编gui*_*man的帖子

使用Phoenix.HTML.Form添加并显示错误消息"使用连接数据"

我有一个带有textarea的简单表单,用户可以在其中键入(或复制'n'paste)json字符串.表单将被发送到我的控制器操作,我将验证json字符串,如果它没问题,我将创建一些记录,一切都很好.

要将表单发送到我的控制器操作,我现在使用Phoenix.HTML.Form "With connection data",因此我没有模型/变更集.

<%= form_for @conn, @action, [as: :match], fn f -> %>
  <%= textarea f, :json, rows: 20 %>
  <%#= error_tag @changeset, f, :json %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

如果json由于某种原因无效,我想再次渲染表单并显示错误消息.error_tag是一个视图辅助方法,如果有变更集,它将在字段中显示错误.因此,它现在被注释掉了.

def error_tag(form, field) do
  if error = form.errors[field] do
    content_tag :span, (humanize(field) <> " " <> translate_error(error)), class: "help-block"
  end
end

def error_tag(changeset, form, field) do
  if changeset.action do
    error_tag(form, field)
  end
end
Run Code Online (Sandbox Code Playgroud)

添加错误的正确方法是什么,以便我可以在表单字段中显示它们.我是否必须将错误添加到@connf(表单)或是否有其他方法可以获得?

elixir phoenix-framework

5
推荐指数
2
解决办法
4548
查看次数

手动添加 gettext 翻译键

我正在使用 phoenixframework 创建一个项目,并使用 gettext 添加一些翻译。该命令mix gettext.extract --merge从控制器和模板中获取我所有的翻译键并将其存储在.pot.po文件中。

但是我在配置文件中有一些翻译键,我将它们用作表单选择框中的选择选项。目前我有一个键列表:[:key1, :key2, key3, ..., keyN].

现在我需要一个关键字列表来显示翻译并使用选择框选择键。我的结果是这样的:[{"translation 1": key1}, {"translation 2": key2}, {"translation 3": key3}, ..., {"translation N": keyN}]

问题:

我不应该碰我的.pot文件,我不能将我的翻译密钥写入我的.po文件,因为在运行上述命令后它们将丢失。文件将被覆盖。

有没有办法手动添加翻译,以便我可以运行命令从我的项目中获取新翻译,而不会丢失手动添加的翻译?

gettext elixir phoenix-framework

5
推荐指数
1
解决办法
632
查看次数

标签 统计

elixir ×2

phoenix-framework ×2

gettext ×1