2012-01-28 19 views
14

Ho una pagina caratteristica che appartiene alla pagina Car. Funziona esattamente come voglio, tranne che per una cosa.Rails ActiveAdmin - modifica dopo aggiornamento redirect_to

Dopo la creazione, l'aggiornamento o distruggere, voglio la pagina per essere reindirizzato al admin_car_path(car) anziché i valori predefiniti admin_car_feature_path(car,feature) per creare e aggiornare e admin_car_features_path(car).

Ho cercato senza successo quello.

ActiveAdmin.register Car do 
end 

ActiveAdmin.register Feature do 
    belongs_to :car 
end 

TIA

risposta

15

Ecco il codice per l'azione di aggiornamento per il tuo caso. Questo codice va a features.rb - file admin:

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

Questo reindirizza alla pagina di indice delle automobili. Quindi hai l'idea. Lo stesso vale per creare e distruggere azioni.

+0

un'altra cosa buona di questo approccio: non ignorare errori di convalida viene mostrato nella pagina di modifica quando l'oggetto non è valido (come temevo potesse farlo poiché il blocco non distingue se valido o meno). –

+3

Invece di 'format.html {redirect_to admin_cars_path}' potresti usare l'approccio generico 'format.html {redirect_to collection_path}' –

+0

Grazie ragazzi. Mi dispiace per la conferma tardiva. – Marcelo

0

Marcelo, io non sono sicuro di aver capito la tua domanda, ma non vorrei mettere questo in azioni update, create e destroy nel vostro controller fare il trucco?

format.html { redirect_to redirect_address } 

E fare redirect_address quello che ti serve.

8

Al momento attuale la risposta accettata porta a ignorare gli errori di convalida.

questo funziona per me con le ultime versioni di ActiveAdmin e 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

Ho ricevuto questo errore: development/myproject/app/admin/features.rb: 1: in ' ': metodo non definito' controller' per main: Object (NoMethodError) cosa sto facendo sbagliato? –

+0

Mi dispiace, il post è del 2014, non ho usato ruby ​​per 2 anni. – Anri

31

codice giusto per l'aggiornamento senza saltare la convalida

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

Ho ricevuto questo errore: development/myproject/app/admin/features.rb: 1: in ' ': metodo non definito' controller' per main: Object (NoMethodError) cosa sto facendo sbagliato? –

+0

deve essere inserito all'interno di ActiveAdmin.register ModelName do end block –

Problemi correlati