Rails ActiveAdmin - 更改更新后的redirect_to

Mar*_*elo 16 ruby-on-rails activeadmin

我有一个属于Car页面的Feature页面.除了一件事,这正是我想要的.

在创建,更新或销毁之后,我希望将页面重定向到创建和更新admin_car_path(car)的默认值而不是.admin_car_feature_path(car,feature)admin_car_features_path(car)

我没有成功搜索到那个.

ActiveAdmin.register Car do
end

ActiveAdmin.register Feature do
  belongs_to :car
end
Run Code Online (Sandbox Code Playgroud)

TIA

naz*_*yev 39

正确的更新代码,无需跳过验证

controller do
  def update
    super do |success,failure|
      success.html { redirect_to collection_path }
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

  • 不建议在AA中使用`super`关键字(很傻,我知道。DSL过度使用IMO)。这本质上就是update!方法的目的。您也可以进行更新!||成功,失败|` (2认同)

kra*_*avc 23

以下是针对您的案例的更新操作的代码.此代码转到features.rb - admin文件:

controller do
  def update
    update! do |format|
      format.html { redirect_to admin_cars_path }
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

这会重定向到汽车索引页面.所以你有这个想法.对于创建和销毁操作也是如此.

  • 而不是`format.html {redirect_to admin_cars_path}`你可以使用泛型方法`format.html {redirect_to collection_path}` (3认同)

Anr*_*nri 10

在当前时刻,接受的答案会导致忽略验证错误.

这适用于我使用最新版本的ActiveAdmin和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  
Run Code Online (Sandbox Code Playgroud)