2011-09-26 11 views
8

He intentado hacerlo desde el controlador y desde el controlador de anulación de administrador activo y no puedo hacerlo funcionar.Rails 3 Active Admin agregar valor preestablecido al nuevo registro

Un usuario crea un sitio web. current_user tiene un atributo id sitio tiene un atributo user_id

Así que cuando se crea un nuevo sitio web que desea añadir el current_user.id en website.user_id. No puedo

¿Alguien sabe cómo?

Ahora mismo lo necesito en las acciones nuevas/crear, pero probablemente también lo necesite en las acciones de edición/actualización.

Respuesta

12

Esto parece funcionar para mí:

ActiveAdmin.register Website do 

    controller do 
    # Do some custom stuff on GET /admin/websites/*/edit 
    def edit 
     super do |format| 
     # Do what you want here ... 
     @website.user = current_user 
     end 
    end 
    end 

end 

usted debería ser capaz de anular otras acciones del controlador de la misma manera.

4

Necesita agregar un "nuevo" método al controlador. El método 'nuevo' crea un objeto de sitio web vacío que se pasará al formulario. El método 'nuevo' predeterminado solo crea un objeto @website vacío. Su método 'nuevo' debe crear el objeto vacío, y luego inicializar el valor de usuario a usuario actual:

ActiveAdmin.register Website do 

    controller do 
    # Custom new method 
    def new 
     @website = Website.new 
     @website.user = current_user 
     #set any other values you might want to initialize 
    end 
    end 
+0

no se olvide de la definición "controlador", que pasé por alto en esta respuesta. –

Cuestiones relacionadas