在 Rails 中,块可以用作回调,例如:
class User < ActiveRecord::Base
validates_presence_of :login, :email
before_create {|user| user.name = user.login.capitalize
if user.name.blank?}
end
像这样使用块时,break
and有什么用return
吗?我问是因为通常在一个块中,break
会跳出循环,并return
从封闭方法返回。但是在回调上下文中,我无法理解这意味着什么。
Ruby 编程语言建议这return
可能会导致 aLocalJumpError
但我无法在 Rails 回调中重现这一点。
编辑:我希望使用以下代码LocalJumpError
,但return
所做的只是停止其余的回调执行。
class User < ActiveRecord::Base
validates_presence_of :login, :email
before_create do |user|
return
user.name = user.login.capitalize
end