Rails ActiveAdmin - change the after update redirect_to

↘锁芯ラ 提交于 2020-01-10 17:39:44

问题


I have a Feature page that belongs to the Car page. That is working exactly how I want to, except for one thing.

After creating, updating or destroying, I want the page to be redirected to the admin_car_path(car) instead of the defaults admin_car_feature_path(car,feature) for create and update and admin_car_features_path(car).

I unsuccessfully searched for that.

ActiveAdmin.register Car do
end

ActiveAdmin.register Feature do
  belongs_to :car
end

TIA


回答1:


Here is the code for update action for your case. This code goes to the features.rb - admin file:

controller do
  def update
    update! do |format|
      format.html { redirect_to admin_cars_path }
    end
  end
end

This redirects to the cars index page. So you have the idea. Same for create and destroy actions.




回答2:


right code for updating without skipping validation

controller do
  def update
    super do |success,failure|
      success.html { redirect_to collection_path }
    end
  end
end



回答3:


At the current moment accepted answer leads to ignoring validation errors.

This works for me with the latest versions of ActiveAdmin and Rails:

controller do

  def update
    update! do |format|
      format.html { redirect_to collection_path } if resource.valid?
    end
  end

  def create
    create! do |format|
      format.html { redirect_to collection_path } if resource.valid?
    end
  end

end  



回答4:


Marcelo, I'm not sure I understand your question, but wouldn't putting this into the update, create and destroy actions in your controller do the trick?

 format.html { redirect_to redirect_address }

And make redirect_address whatever you need.




回答5:


Current answer is skipping validations. Some of the other answers are working but partially correct (incorrect use of super or manually validating resource).

Most updated "proper" way to redirect with AA after create and udpate:

controller do
  def create
    create! do |success,failure|
      success.html { redirect_to collection_path, notice: "#{resource.model_name.human} was successfully created." }
    end
  end
  def update
    update! do |success,failure|
      success.html { redirect_to collection_path, notice: "#{resource.model_name.human} was successfully updated." }
    end
  end
end


来源:https://stackoverflow.com/questions/9047848/rails-activeadmin-change-the-after-update-redirect-to

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!