2012-01-28 21 views
14

私はCarページに属しているFeatureページを持っています。 1つのことを除いて、それは私が欲しいと思っている通りに働いています。Rails ActiveAdmin - 更新後の変更redirect_to

作成、更新、または破棄した後、作成および更新用のデフォルトのadmin_car_feature_path(car,feature)admin_car_features_path(car)ではなく、admin_car_path(car)にページをリダイレクトします。

私はそれをうまく検索しませんでした。

ActiveAdmin.register Car do 
end 

ActiveAdmin.register Feature do 
    belongs_to :car 
end 

TIA

答えて

15

あなたのケースの更新処置のコードは次のとおりです。このコードはfeatures.rb-adminファイルに移動します。

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

これは、車のインデックスページにリダイレクトされます。あなたはそのアイデアを持っています。作成アクションと破棄アクションと同じです。

+0

このアプローチに関する別の良いところ飛ばすことなく更新するための右のコード:それは検証エラーをオーバーライドしていませんがオブジェクトが無効であるときに編集ページに表示されます(ブロックが有効かどうかを区別しないので恐れています)。 –

+3

'format.html {redirect_to admin_cars_path} 'の代わりに、' format.html {redirect_to collection_path} 'という汎用的なアプローチを使用することができます。 –

+0

ありがとう。遅い確認をして申し訳ありません。 – Marcelo

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

私はこのエラーに遭遇しています: 開発/ myproject/app/admin/features.rb:1: ':未定義メソッド' controller 'for main:Object(NoMethodError) 私がやっていること違う? –

+0

申し訳ありませんが、投稿は2014年からです。今は2年間ルビーを使用していません。 – Anri

31

検証

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

私はこのエラーが発生しています: 開発/ myproject/app/admin/features.rb:1: ':未定義メソッド' controller 'for main:Object(NoMethodError) 私がやっていること違う? –

+0

ActiveAdmin.registerの中に配置する必要がありますModelName do endブロック –

関連する問題