回调和代码保理

时间:2014-07-07 21:04:42

标签: ruby-on-rails ruby

我编写了一个控制器,它的大部分方法都是在最后respond_with方法中调用的。所以我想到了一个想法" 我可以使用回调来不必多次重复该行吗?"

也许它有些极端而且它毫无价值但我需要知道这一点。所以我测试了它,但它没有按预期工作,我真的很想理解它。这两种方法之间的区别是什么?

方法1

def new
  @user = User.new
  respond_with(@user)
end

方法2

after_action :respond_with_call, only: [:new]  

def new
  @user = User.new
end

def respond_with_call
  respond_with(@user)
end

1 个答案:

答案 0 :(得分:4)

respond_with无法在after_action中使用,因为响应已经发送给客户端。

非常相似to this question