问题标签 [ecto]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5076 浏览

elixir - 如何在 Phoenix 应用程序启动时预填充数据库?

我有这个架构:

我希望在应用程序启动时自动创建并填充几行,比如我想创建 6 个条目,其:title字段包含:page1、page2、... 我应该这样做吗?

0 投票
1 回答
2333 浏览

elixir - 如何正确清理 Phoenix 中的用户输入服务器端

我知道如何清理用户输入客户端,但我也会在服务器端进行。我知道使用它的正确位置,changeset但到目前为止,我找不到如何正确处理<script></script>标签和其他潜在有害内容(如 SQL 注入)的示例。因为我想允许用户更改 HTML 内容并将该 HTML 保存在数据库中,所以我不能使用标准验证,而是raw在模板中显示 HTML。有人可以给我一个例子吗?

0 投票
2 回答
2093 浏览

erlang - 生产长生不老药没有找到现有的原子

我正在使用一个库,该库使用已经存在的键(毒药)将输入解析为地图。无论出于何种原因,在生产中,它认为密钥不存在,我不知道为什么。我确实有一些信息,我希望不是菜鸟的人愿意帮助我弄清楚发生了什么:

1:

如果我进行 IEX 会话(iex -S mix),我可以毫无问题地运行 :erlang.binary_to_existing_atom("first_name", :"utf8") 。但是在生产中,我得到了

2:

我可以在生产:first_name之前立即运行:erlang.binary_to_existing_atom,它工作正常,因为那时原子已经创建。但是,我不能:first_name跟着库的方法运行:Poison.Parser.parse!(~s(#{body}), keys: :atoms!)因为它抛出了错误,我觉得这很奇怪。

3:

我正在使用 Heroku,不确定这是否重要。原子是在 Ecto 模型中定义的,也不确定这是否重要。任何帮助将不胜感激 - 在此先感谢!

0 投票
2 回答
5012 浏览

postgresql - 如何使用 Ecto/Phoenix 从数据库中选择最新条目

我只是从数据库和查询(来自前端)开始,我想从包含特定的字段中选择最新条目title,比如Page1. 我知道我有两个领域可以帮助我: 1) created_at- 我可以订购它,只选择最新的;2) id- 我知道每个条目都会生成一个新条目,id因此我可以获得最大的条目id;我想将其应用于“标准”编辑控制器操作:

所以我想知道哪种方法更好,并查看查询示例。

0 投票
2 回答
3807 浏览

elixir - has_one 在ecto/phoenix/elixir 中没有belongs_to

问题

我有一个files表,还有许多其他表可以创建一对一关联,例如users可能有 aavatarposts可能有photo.

一个可能的解决方案

一个可能的解决方案是创建users_filesposts_files表并使用has_one :through. 但是,这看起来有些过分。

理想的解决方案

理想的解决方案是定义这样的表

并有with:参数,has_one所以架构看起来像这样

这样你就不需要定义 a belongs_toon files。是否已经有类似的机制?在凤凰城处理这个问题的标准方法是什么?

0 投票
1 回答
366 浏览

elixir - 从 Ecto 模型中的非公共模式中选择表

经过各种 Google 搜索后,我仍然对选择不在 PostgreSQL 中默认公共架构下的表的问题感到头疼。

然而,我确实尝试在模型定义中引用 Postgres 的模式,但没有运气,查看日志,我明白为什么它被查询为“引用”

抛出:

我明白这不是一个错误,但我想知道我还能如何实现这一点。

0 投票
2 回答
943 浏览

elixir - 使用ecto存储自定义信息

我正在重新实现我最初在 Phoenix 的 Rails 中编写的应用程序,用户可以在其中使用 PostgreSQL 的 JSONB 记录类型创建自定义字段。例如,我们有以下(简化表示)模式:

客户

  • 编号(整数)
  • 客户端类型 ID (int)
  • 名称(字符串)
  • 信息 (jsonb)

客户类型

  • 编号(整数)
  • 名称(字符串)

自定义字段定义

  • 编号(整数)
  • 客户端类型 ID (int)
  • 键(字符串)
  • 标签(字符串)

在 Rails 中,ActiveRecord 神奇地将 JSONB 与哈希转换,这使我能够非常轻松地使用 JSONB 来存储一组无模式的自定义字段。

例如,每种客户端类型都可以定义不同的自定义字段,然后当我向用户显示信息时,我会循环遍历定义以获取密钥,然后使用这些密钥从 JSONB 文档中获取数据。

我试图找出一种使用 Ecto 来完成此任务的方法,看起来我应该查看一个嵌入式架构(我在这里看到了一些很好的信息),但是我不认为通过查看它可以定义一个在运行时自定义数量的字段,可以吗?

我只是在寻找一些建议,因为到目前为止,这是我遇到的唯一一个几乎没有立即解决的真正障碍。

再次感谢,我很感激!

0 投票
1 回答
74 浏览

postgresql - 查询视图和函数

如何使用 Ecto 查询非模型视图或表返回函数?在我的情况下,该函数(采用一个参数)返回与我的模型之一相同的列,并且只需要只读。

0 投票
4 回答
1600 浏览

elixir - 如何从当前日期和 Ecto.Date 实例中获取年份差异

假设我有一个Person模型,每个人都有一个生日字段设置为一Ecto.Date列。

birthday因此,如果我从数据库中检索代表此模型实例的记录,那么从他的列中获取此人年龄的最佳方法是什么?

0 投票
2 回答
1607 浏览

elixir - 使用动态数量的 where 过滤器组合 Ecto [v1] 查询

这是一个理论问题,但假设数据结构不能改变,这绝对是我们想要进行查询的方式。这个问题更多是为了更好地理解过滤器是如何动态组合where,而不是真正想要从这样的查询中获取结果。

想象一个带有 Car 表的数据库,其中每辆车都有一个manufacturer_id包含 ID(例如“BD324”或“GM512”)的列,其中“BD”和“GM”被视为前缀。

我们需要在汽车表上进行查找,以便当汽车的manufacturer_id前缀与给定的一组前缀匹配时返回汽车。所以,给定一个前缀列表:

..我们想要退回所有以列出的任何manufacturer_id一个开头的汽车。即(喜欢 x喜欢 y喜欢 z)。

以下 Elixir/Ecto 代码将搜索一个前缀:

where我们将如何根据列表构建子句prefixes