问题标签 [after-create]

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 回答
1543 浏览

ruby-on-rails - Rails:跳过after_create

我有 2 个模型:

我通常创建一个user第一个,并有一个after_create过滤器,在创建client之后user创建。

我有一个client存在的新案例,我想在已经存在user 之后创建。client在这种情况下,当我创建时user我想跳过after_create过滤器。

我知道我需要after_create :create_client, unless: ____,但我不确定如何区分。

0 投票
0 回答
72 浏览

ruby-on-rails - Ruby on Rails -- SystemStackError:堆栈级别太深

我在创建后和更新前向我的模型添加了一些代码,现在我无法保存我的帖子 btw 两个模型(用户和帖子)都有 has_and_belongs_to_many 关系:

是什么导致了这个,我应该改变什么来摆脱这个错误?

0 投票
1 回答
17 浏览

parent-child - 创建父对象后创建多个关联记录

我有一个用户创建约会的应用程序,每个约会都有一组通过 Appointment_Skills 表附加到他们的技能。在创建后,我想为每个约会附加大约 50 种左右的技能。因为约会表单太大并且要跟踪的事情太多,我让用户使用最小表单创建约会,然后重定向到他们可以访问整个约会的编辑页面。我正在使用嵌套属性来更新编辑表单中的 Appointment 和 Appointment_Skills。

如果我继续创建一些 AppointmentSkills,我可以使用我的编辑表单来更新它们的属性,但我不确定如何在创建父级后自动创建它们。

我考虑过首先计算所有技能和 ID,然后使用 after_create 回调创建所有具有技能 ID 和约会 ID(刚刚创建的约会)的 AppointmentSkills。

这可能吗?这是一种奇怪的做法吗?

0 投票
1 回答
21 浏览

ruby-on-rails - 只需一次启动方法以添加/删除关联元素

我有一个Composition模型,它有一个has_and_belongs_to_many :authors.

我需要在组合更改其作者后触发一个方法,但是,由于它涉及创建 PDF 文件(使用作者的姓名),我只想调用此方法一次,而不管添加的作者数量/删除。

当然,我可以从作品中添加/删除现有作者,因此before_save/after_save在这里不起作用(它以某种方式识别添加到作品中的新作者,但不是现有作者)。

所以我尝试使用after_add/ after_remove,但这里指定的回调将为添加到组合中/从组合中删除的每个作者项目调用。

有没有一种方法可以让每个从这种关系中添加/删除项目的“批处理操作”只调用一次方法?

0 投票
1 回答
167 浏览

ruby-on-rails - 插入后的 Rails 回调

我正在使用一个闭包表来对我的一个模型的层次结构进行建模。因此,我正在使用after_create因此,每当调用Model.create挂钩来创建 tree_path 对象。我还希望在#new#save一起调用时运行此挂钩。这意味着我必须使用after_save而不是after_create,但是 after_save 也在更新时运行,这是我不想要的。

是否可以让回调在对象的初始插入(创建或首次保存)时运行,但不能在更新时运行?从回调中创建更多对象是不好的形式吗?

0 投票
2 回答
104 浏览

ruby-on-rails - Rails 控制器使用 'after_create' 方法表现得很奇怪。- 'nil:NilClass'的'未定义方法'错误'

我是Rails的新手。请原谅。

我正在尝试在我的控制器中实现“after_create”,以便将数据放入数据库中的不同表中。

它会调用这个。

但是,每次我尝试渲染“新”时,都会出现以下错误。 在此处输入图像描述

这些是我的完整控制器。(排除不相关部分..)

看来我的新方法没有被调用。

如果我删除 'after_create :create_order_confirm' 这一行。它工作正常。有人能解释一下吗?以及如何使用“after_create”?我只希望在调用“创建”函数时调用它们。

编辑

将 order 更改为 @order 并没有解决问题。

在此处输入图像描述