问题标签 [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.
elixir - 如何在 Phoenix 应用程序启动时预填充数据库?
我有这个架构:
我希望在应用程序启动时自动创建并填充几行,比如我想创建 6 个条目,其:title
字段包含:page1、page2、... 我应该这样做吗?
elixir - 如何正确清理 Phoenix 中的用户输入服务器端
我知道如何清理用户输入客户端,但我也会在服务器端进行。我知道使用它的正确位置,changeset
但到目前为止,我找不到如何正确处理<script></script>
标签和其他潜在有害内容(如 SQL 注入)的示例。因为我想允许用户更改 HTML 内容并将该 HTML 保存在数据库中,所以我不能使用标准验证,而是raw
在模板中显示 HTML。有人可以给我一个例子吗?
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 模型中定义的,也不确定这是否重要。任何帮助将不胜感激 - 在此先感谢!
postgresql - 如何使用 Ecto/Phoenix 从数据库中选择最新条目
我只是从数据库和查询(来自前端)开始,我想从包含特定的字段中选择最新条目title
,比如Page1
. 我知道我有两个领域可以帮助我: 1) created_at
- 我可以订购它,只选择最新的;2) id
- 我知道每个条目都会生成一个新条目,id
因此我可以获得最大的条目id
;我想将其应用于“标准”编辑控制器操作:
所以我想知道哪种方法更好,并查看查询示例。
elixir - has_one 在ecto/phoenix/elixir 中没有belongs_to
问题
我有一个files
表,还有许多其他表可以创建一对一关联,例如users
可能有 aavatar
和posts
可能有photo
.
一个可能的解决方案
一个可能的解决方案是创建users_files
和posts_files
表并使用has_one :through
. 但是,这看起来有些过分。
理想的解决方案
理想的解决方案是定义这样的表
并有with:
参数,has_one
所以架构看起来像这样
这样你就不需要定义 a belongs_to
on files
。是否已经有类似的机制?在凤凰城处理这个问题的标准方法是什么?
elixir - 从 Ecto 模型中的非公共模式中选择表
经过各种 Google 搜索后,我仍然对选择不在 PostgreSQL 中默认公共架构下的表的问题感到头疼。
然而,我确实尝试在模型定义中引用 Postgres 的模式,但没有运气,查看日志,我明白为什么它被查询为“引用”
抛出:
我明白这不是一个错误,但我想知道我还能如何实现这一点。
elixir - 使用ecto存储自定义信息
我正在重新实现我最初在 Phoenix 的 Rails 中编写的应用程序,用户可以在其中使用 PostgreSQL 的 JSONB 记录类型创建自定义字段。例如,我们有以下(简化表示)模式:
客户
- 编号(整数)
- 客户端类型 ID (int)
- 名称(字符串)
- 信息 (jsonb)
客户类型
- 编号(整数)
- 名称(字符串)
自定义字段定义
- 编号(整数)
- 客户端类型 ID (int)
- 键(字符串)
- 标签(字符串)
在 Rails 中,ActiveRecord 神奇地将 JSONB 与哈希转换,这使我能够非常轻松地使用 JSONB 来存储一组无模式的自定义字段。
例如,每种客户端类型都可以定义不同的自定义字段,然后当我向用户显示信息时,我会循环遍历定义以获取密钥,然后使用这些密钥从 JSONB 文档中获取数据。
我试图找出一种使用 Ecto 来完成此任务的方法,看起来我应该查看一个嵌入式架构(我在这里看到了一些很好的信息),但是我不认为通过查看它可以定义一个在运行时自定义数量的字段,可以吗?
我只是在寻找一些建议,因为到目前为止,这是我遇到的唯一一个几乎没有立即解决的真正障碍。
再次感谢,我很感激!
postgresql - 查询视图和函数
如何使用 Ecto 查询非模型视图或表返回函数?在我的情况下,该函数(采用一个参数)返回与我的模型之一相同的列,并且只需要只读。
elixir - 如何从当前日期和 Ecto.Date 实例中获取年份差异
假设我有一个Person
模型,每个人都有一个生日字段设置为一Ecto.Date
列。
birthday
因此,如果我从数据库中检索代表此模型实例的记录,那么从他的列中获取此人年龄的最佳方法是什么?
elixir - 使用动态数量的 where 过滤器组合 Ecto [v1] 查询
这是一个理论问题,但假设数据结构不能改变,这绝对是我们想要进行查询的方式。这个问题更多是为了更好地理解过滤器是如何动态组合的where
,而不是真正想要从这样的查询中获取结果。
想象一个带有 Car 表的数据库,其中每辆车都有一个manufacturer_id
包含 ID(例如“BD324”或“GM512”)的列,其中“BD”和“GM”被视为前缀。
我们需要在汽车表上进行查找,以便当汽车的manufacturer_id
前缀与给定的一组前缀匹配时返回汽车。所以,给定一个前缀列表:
..我们想要退回所有以列出的任何manufacturer_id
一个开头的汽车。即(喜欢 x或喜欢 y或喜欢 z)。
以下 Elixir/Ecto 代码将搜索一个前缀:
where
我们将如何根据列表构建子句prefixes
?