gpt4 book ai didi

ruby-on-rails - 用于 activerecord 回调的新 lambda 文字语法

转载 作者:行者123 更新时间:2023-12-03 09:47:52 24 4
gpt4 key购买 nike

我想知道这是否可能?

after_create -> { some_method_from_model }, if: :should_be_executed?

语法没问题,但是 Proc 将被调用/执行还是刚刚创建?

最佳答案

如果您想在模型上调用方法,最好的方法是将模型作为参数传递给 lambda,然后使用它来调用所需的方法,如下所示:

after_create -> (model) { model.some_method }, if: :execution_condition_satisfied?

这是因为 self 的值lambda 内部不是模型而是 Proc 对象,并且在没有显式接收器的情况下,Ruby 会尝试调用 self 中的方法.

在您的示例中,Ruby 将尝试查找 some_model_method在 Proc 对象中。所以不,你的例子不起作用,但那是 与新的 lambda 文字语法无关 .

我希望它有帮助;)

关于ruby-on-rails - 用于 activerecord 回调的新 lambda 文字语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21935450/

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