2012-01-28 64 views
14

我有一個屬於Car頁面的Feature頁面。這正是我想要的,除了一件事。Rails ActiveAdmin - 更改後更新redirect_to

創建,更新或破壞之後,我希望頁面被重定向到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 

TIA

回答

15

以下是您的案例的更新操作代碼。這個代碼進入到features.rb - 管理文件:

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

這重定向到汽車索引頁。所以你有這個想法。創建和銷燬操作相同。

+0

另一件好事關於這種方法更新:它不會覆蓋驗證錯誤當對象無效時顯示在編輯頁面上(因爲我擔心這可能是因爲塊沒有區分是否有效)。 – 2013-02-01 17:23:35

+3

而不是'format.html {redirect_to admin_cars_path}'你可以使用通用的方法'format.html {redirect_to collection_path}' – 2013-05-23 16:07:28

+0

謝謝你們。我很抱歉遲到的確認。 – Marcelo 2013-06-26 14:19:32

0

馬塞洛,我不知道我理解你的問題,但不會投入在你的控制器的updatecreatedestroy這個動作做的伎倆?

format.html { redirect_to redirect_address } 

並使redirect_address任何你需要的。

8

在當前接受的答案導致忽略驗證錯誤。

這對我的作品與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 
+0

我得到這個錯誤: 我在做什麼(對於主對象(NoMethodError)錯誤? – 2016-10-28 11:43:32

+0

對不起,該帖子是從2014年開始的,我現在還沒有用過2年的紅寶石。 – Anri 2016-10-31 09:17:12

31

正確的代碼不跳過驗證

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

我得到這個錯誤: 我正在做什麼(對我有用[0]丟個板磚[0]錯誤? – 2016-10-28 11:43:26

+0

它應該被放置在ActiveAdmin.register ModelName中做結束塊 – 2016-12-04 11:24:23

相關問題