在Devise :: RegistrationsController #create中,什么是`yield resource if block_given?`

时间:2016-10-09 21:13:41

标签: ruby-on-rails devise

yield resource if block_given?Devise::RegistrationsController#create的目的是什么。

# POST /resource
def create
  build_resource(sign_up_params)

  resource.save
  yield resource if block_given?
  if resource.persisted?
    if resource.active_for_authentication?
      set_flash_message! :notice, :signed_up
      sign_up(resource_name, resource)
      respond_with resource, location: after_sign_up_path_for(resource)
    else
      set_flash_message! :notice, :"signed_up_but_#{resource.inactive_message}"
      expire_data_after_sign_in!
      respond_with resource, location: after_inactive_sign_up_path_for(resource)
    end
  else
    clean_up_passwords resource
    set_minimum_password_length
    respond_with resource
  end
end

如果您使用Devise对用户进行身份验证,我认为resource@user,而yield用于在html.erb文件中呈现模板。

但是我不明白它在控制器中做了什么,特别是当没有明确传递任何块时。

0 个答案:

没有答案