index form custom callbacks all active ruby-on-rails activeadmin inherited-resources

ruby on rails - form - Rails: activeadmin overriding create action



custom controller activeadmin (4)

Me encontré con una situación similar en la que realmente no necesitaba anular completamente el método de creación. Realmente solo quería inyectar propiedades antes de guardar, y solo en crear; muy similar a tu ejemplo. Después de leer la fuente de ActiveAdmin, determiné que podía usar before_create para hacer lo que necesitaba:

ActiveAdmin.register Product do before_create do |product| product.creator = current_user end end

Tengo un recurso activeadmin que tiene una relación belongs_to: user.

Cuando creo una nueva Instancia del modelo en el administrador activo, quiero asociar al usuario actualmente conectado como el usuario que creó la instancia (cosas bastante estándar que me imagino).

Entonces ... lo tengo trabajando con:

controller do def create @item = Item.new(params[:item]) @item.user = current_curator super end end

Sin embargo;) Me pregunto cómo funciona esto? Solo esperaba que asignar la variable @item al usuario y luego llamar a super funcionaría (y lo hace). También comencé a buscar a través de la gema, pero no pude ver cómo funcionaba realmente.

Cualquier punto sería genial. ¿Asumo que esto es algo que InheritedResources te da?

¡Gracias!


Otra opción:

def create params[:item].merge!({ user_id: current_curator.id }) create! end


Según el código fuente de AA , esto funcionó para mí:

controller do def call_before_create(offer) end end


Usted es el administrador activo adecuado, use InheritedResources , todas las demás herramientas que puede ver al final de la page .