首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >After_save,After_create (订单) (Ruby on rails)

After_save,After_create (订单) (Ruby on rails)
EN

Stack Overflow用户
提问于 2013-04-12 11:12:39
回答 2查看 1.8K关注 0票数 1

(Ruby on rails)

我有一个注册表,它将数据从表单保存到一个表和另一个表。我使用钩子、"after_save :process_field_to_another_table“和"after_create :send_registration_email”在用户注册后向他们发送电子邮件。

不幸的是,"after_create“在"after_save”之前起作用,但我需要:send_registration_email在保存过程发生后才起作用。我正在考虑在"after_create“中运行:process_field_to_another_table,但是它连续运行两次,这没有多大意义。

你知道在这种情况下,我如何指示"after_save“在"after_create”之前运行吗?或者有什么更好的建议?我尝试了"before_save“和"before_create",但它似乎不能正确处理。

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-12 11:53:29

你可以把这两个钩子放在一起。

代码语言:javascript
复制
after_save :foo

def foo
  process_field_to_another_table
  send_registration_email if id_changed?  # id will change only for new record.
end
票数 3
EN

Stack Overflow用户

发布于 2013-04-12 11:49:56

您可以通过组合使用after_createafter_update回调来分隔调用。

代码语言:javascript
复制
after_create :process_field_to_another_table, :send_registration_email
after_update :process_field_to_another_table

这样,在send_registration_email之前调用process_field_to_another_table

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15962431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档