Rails 尽管使用 if then 语句,但仍出现双重渲染错误

Rails double render error despite using if then statement

我经常同时使用 renderredirect_to,但在 if...then 语句中结合使用,因此默认情况下操作只有 1。不确定为什么在这种情况下不起作用与设计。

我需要做的是用户是否被确认,在s/he注册成功后我需要立即POST到另一个控制器来创建一些其他的东西,这就是为什么redirect_to 是一样的。但是我收到 DoubleRender 错误

谢谢!

供您参考,这是设计代码:

# 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 if is_flashing_format?
      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}" if is_flashing_format?
      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

然后我的代码:

def after_sign_up_path_for(resource)
  redirect_to "/plan_date_create"
end

def after_inactive_sign_up_path_for(resource)
  redirect_to "/plan_date_create"
end

respond_with 进行渲染,然后 after_sign_up_path_forafter_inactive_sign_up_path_for 进行重定向,您同时调用 respond_with 和其中一个方法在同一行代码上。