Ecto - 验证关联模型的存在

2024-04-24

如何验证 Ecto 中是否存在关联模型?

schema "foo" do
  has_many: bar, Bar

  timestamps
end

@required_fields ~w(bar) # invalid

有办法这样做吗?并验证这些字段的最小/最大数量?


还什么都没有啊但是您可以在您的系统中自行运行这些验证changeset功能:

def changeset(model, params) do
  model
  |> cast(...)
  |> validate_bar_association()
end

def validate_bar_association(changeset) do
  bar = changeset.model.bar
  cond do
    bar == nil ->
      add_error changeset, :bar, "No bar"
    length(bar) < 5 ->
      changeset
    true ->
      add_error changeset, :bar, "waaaay too many"
  end
end

我们确实希望使嵌套关联变得更好,但我们的优先级列表中还有其他项目。 :)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ecto - 验证关联模型的存在 的相关文章

随机推荐

  • Fusion Tables 层 URL 请求限制(2048 个字符)

    我正在使用 Google 地图突出显示一些国家 并使用 Fusion Tables 来获取几何图形 您可以在此处查看一个示例 http jsfiddle net 4mtyu 689 http jsfiddle net 4mtyu 689 v
  • 使用 netcat 提供包含图像的 HTTP 响应

    我正在尝试使用 netcat 编写一个小型 HTTP 服务器 对于纯文本文件 这工作正常 但当我尝试发送图片时 浏览器仅显示损坏图像的图标 我所做的就是提取所请求文件的 mime 类型和大小 并将其发送给客户端 我的示例图片的请求标头如下所
  • 从回调中递归调用函数会导致堆栈溢出吗?

    我想在事件触发后调用一个函数 然后在同一个回调中再次调用该函数 这是为了在函数完成时创建一种事件侦听器 当你看到代码时你就会知道我想做什么 use strict var page require webpage create var sys
  • 我可以将多个线程分配给 OpenMP 中的代码段吗?

    我正在寻找一种方法来并行执行代码部分 每个部分使用多个线程 例如 如果我有 16 个线程和两个任务 我希望每个线程有 8 个线程同时执行这两个任务 OpenMP 有多种构造 section task 并行执行一般代码 但它们是单线程的 在我
  • mypy 在参数化泛型中 isinstance 和 issubclass 从 python 3.5 到 3.6 的差异

    在我从 python 3 5 升级到 python 3 6 之前 这是有效的 import typing issubclass list typing List int returns True isinstance 1 2 3 typin
  • 将未转义文本从字段添加到 postgres 中的正则表达式的正确方法?

    将字段中的文字文本值添加到 postgres 中的正则表达式的正确方法是什么 例如 如果不进行转义 some field 可能包含无效的正则表达式语法 where some text m some field M 最简单的方法是使用正则表达
  • 找不到模块:错误:无法使用 TypeScript 定义文件解析“openlayers”

    在使用 TypeScript 的 Visual Studio 2017 React 应用程序中 有一个使用 OpenLayers v4 6 5 的组件 Map tsx package json 文件加载 types openlayers 和
  • Perl 代码的多线程

    我需要知道如何为以下代码实现多线程 我需要每秒调用此脚本 但睡眠计时器会在 2 秒后处理它 总共脚本每 3 秒调用一次 但我需要每秒调用它 任何人都可以为我提供解决方案或为我指出正确的方向 usr bin perl use warnings
  • ProgressDialog 未在 UIThread 中显示

    我正在使用 google api lib 创建地图 因为地图小部件需要很长时间才能加载 所以我尝试添加加载通知 但没有显示 不过 我可以在常规线程中显示进度对话框 为什么这个对话框没有显示 public void onCreate Bund
  • 是否可以扩展 woocommerce 产品休息端点?

    有没有办法扩展 woocommerce Rest api 中的产品对象 wp json wc v3 products 以非破坏性的方式 因此使用该端点的插件不会中断 我目前尝试创建自己的休息端点来复制该对象 但现在缺少大量数据 我也尝试过类
  • 如何使用 Amazon API 轻松恢复购买?

    我正在尝试像 iOS 一样恢复购买 但我不知道如何使用 Amazon API 轻松恢复 IAP 权利购买 如果我向PurchasingManager 它返回一个PurchaseResponse 但是那个PurchaseResponse如果已
  • ar.js 中的事件监听器

    我正在开发一个涉及 ar js 的项目 该项目显示 3D 对象和文本 以在移动设备和笔记本电脑上教孩子们字母表 我试图添加一个事件侦听器作为额外的内容 以使孩子们进行更多互动 我的目标是单击 触摸显示的模型 它将放大或改变颜色或旋转 附件中
  • 如何在 django 模型字段上存储多个值

    我有一个模型 将重复的训练存储在我的健身房中 DAYS OF WEEK 0 Monday 1 Tuesday 2 Wednesday 3 Thursday 4 Friday 5 Saturday 6 Sunday class Recurri
  • 如何使用Python图像库(PIL)突出显示图像的一部分?

    如何突出显示图像的一部分 位置定义为 4 个数字的元组 你可以想象它就像我有电脑主板的图像 我需要突出显示例如CPU插槽所在的部分 请注意 对于 Python 3 您需要使用pillow https pypi org project Pil
  • 反转唯一的通用外键(并返回一个对象而不是相关管理器)

    我有一个具有独特通用外键关系的模型 class Contact models Model content type models ForeignKey ContentType object id models PositiveInteger
  • Discord.js 中的用户和 GuildMember 有什么区别?

    我的代码中出现了很多错误 我认为这些错误是由于两者之间的混淆造成的GuildMembers and Users 有人可以解释其中的区别吗 const user message mentions users first TypeError u
  • 解释 proxy.config.json 特性 Angular 5

    api target https localhost 8000 api secure false logLevel debug pathRewrite api changeOrigin true 请提供此代码片段中每个功能的详细使用 谢谢你
  • 是否使用 PHP 框架? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我已经开始用 PHP 编写一些应用程序 并且我对这门语言越来越熟悉 有人告诉我有关 CakePHP 和 CodeIgniter 的信息 我想更好
  • 将 pandas 数据框中的数字和字母字符串转换为 int/float

    我觉得必须有一个快速的解决方案来解决我的问题 我使用多个列表理解破解了一个实施不佳的解决方案 这无论如何都不理想 也许有人可以在这里帮忙 我有一组字符串值 例如 3 2B 1 5M 1 1T 其中最后一个字符自然表示百万 十亿 万亿 该集合
  • Ecto - 验证关联模型的存在

    如何验证 Ecto 中是否存在关联模型 schema foo do has many bar Bar timestamps end required fields w bar invalid 有办法这样做吗 并验证这些字段的最小 最大数量