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
文件中呈现模板。
但是我不明白它在控制器中做了什么,特别是当没有明确传递任何块时。