如何在Rails中跳过before_save过滤器以获取特定命令

Tam*_*Tam 2 ruby-on-rails

我有一个before_save定义如下:

  def before_save
    self.token = generate_token
  end
Run Code Online (Sandbox Code Playgroud)

我想跳过它来进行特定的保存方法调用.所以在我的代码中我想做

@user.save
Run Code Online (Sandbox Code Playgroud)

没有调用before_save过滤器.我能这样做吗?

mik*_*son 8

你可以做:

 @user.send(:update_without_callbacks)
Run Code Online (Sandbox Code Playgroud)

或者create_without_callbacks也可以.我已经使用了两者但我不知道是否有"save_without_callbacks"无论哪种方式,都要谨慎使用.