gpt4 book ai didi

ruby-on-rails-3.2 - 在 Rails 中,针对两种情况执行 block : first_or_create

转载 作者:行者123 更新时间:2023-12-03 18:09:28 25 4
gpt4 key购买 nike

任何人都知道 Rails 方法可以让我查找现有记录或创建新记录并执行后续代码块?

例子:

Model.where(parameters).first_or_create do |m|
# execute this regardless of whether record exists or not
end

类似地,方法 find_or_create_by在任何一种情况下都不执行 block 。

我可以使用 if-else声明,但这会重复我的代码......

最佳答案

我从 a great screencast通过瑞安贝茨:

Model.where(parameters).first_or_create.tap do |m|
# execute this regardless of whether record exists or not
end

(其中 User#tap 选择用户)
我认为这种方式看起来更干净一些,并且您不必像 Mischa 的回答那样定义另一个辅助方法。两者都工作正常。

关于ruby-on-rails-3.2 - 在 Rails 中,针对两种情况执行 block : first_or_create,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12255125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com