如何在自定义设计控制器中重定向



我已经用自定义控制器(用户控制器(进行了设计设置,就像这里解释的那样。

我定制了一些控制器逻辑,比如

def create
super do |user|
@patient = user.build_patient
@patient.save
end
end

所有这些都很好。问题是当我尝试提供自定义redirect_to时,我会看到

def create
super do |user|
@patient = user.build_patient
@patient.save
end
redirect_to physicians_path
end

对具有(意外或其他(>控制器内的1redirect_to不起作用,因为i(我不能影响第一个(因为它是设计的一部分(,以及ii(我不知道如何告诉它忽略第一个,而使用我指定的

我不会接受这个答案,因为我相信有更好的方法,但以下是有效的方法:

  1. 在设计代码中复制相关控制器的代码
  2. 根据需要进行编辑
  3. 我没有使用super(我认为这样会更好,但我不知道如何使用(

所以我只是添加了这个

def update
self.resource = resource_class.to_adapter.get!(send(:"current_#{resource_name}").to_key)
prev_unconfirmed_email = resource.unconfirmed_email if resource.respond_to?(:unconfirmed_email)
resource_updated = update_resource(resource, account_update_params)
yield resource if block_given?
if resource_updated
set_flash_message_for_update(resource, prev_unconfirmed_email)
bypass_sign_in resource, scope: resource_name if sign_in_after_change_password?
# respond_with resource, location: after_update_path_for(resource)
redirect_to edit_user_registration_path
else
clean_up_passwords resource
set_minimum_password_length
respond_with resource
end
end

注意,与设计代码的唯一区别是注释掉这个

# respond_with resource, location: after_update_path_for(resource)

并将其添加到的位置

redirect_to edit_user_registration_path

相关内容

  • 没有找到相关文章

最新更新