Ruby on rails 如果我有两个'after_create'语句,如何确保一个在另一个之前运行?

Ruby on rails 如果我有两个'after_create'语句,如何确保一个在另一个之前运行?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,在同一个模型上创建回调后,我有两个,第二个回调取决于属性(比如client.score)不是零。在第一种方法中,它运行一个计算并将该属性设置为某个非nil值 但看起来,即使我的模型文件中它们紧随其后,如下所示: after_create :callback1 after_create :callback2 每当运行callback2时,它仍然会将client.score设置为零 如何强制在第一个之后运行第二个呢?您可以这样做 def some_action callback1

在同一个模型上创建
回调后,我有两个
,第二个回调取决于属性(比如
client.score
)不是零。在第一种方法中,它运行一个计算并将该属性设置为某个非nil值

但看起来,即使我的模型文件中它们紧随其后,如下所示:

after_create :callback1
after_create :callback2
每当运行
callback2
时,它仍然会将
client.score
设置为零


如何强制在第一个之后运行第二个呢?

您可以这样做

def some_action
    callback1
    callback2
end

after_create :some_action
但是,根据,您的代码示例也应该很好

通常按照定义的顺序运行,但作为模型上的方法定义的回调除外,这些回调最后被调用


你可以这样做

def some_action
    callback1
    callback2
end

after_create :some_action
但是,根据,您的代码示例也应该很好

通常按照定义的顺序运行,但作为模型上的方法定义的回调除外,这些回调最后被调用


顺便说一句,在我的模型中,在
private
下声明这两个回调有关系吗?没有。事实上,它们应该被定义为private,除非您希望它们在类外公开访问。是的……这会产生相同的结果。我的问题似乎与其他问题有关,而不是回调的运行顺序。顺便说一句……在我的模型中,在
private
下声明这两个回调是否重要?不。事实上,它们应该被定义为私有的,除非你想让它们在类外公开访问。是的……这会产生相同的结果。我的问题似乎与其他问题有关,而不是回调的运行顺序。