Carriles: activeadmin anulando crear acción

Tengo un recurso activeadmin que tiene una relación de pertenencia a: usuario.

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

Así que … 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 la asignación de la variable @item al usuario y luego la llamada super funcionaría (y lo hace). También empecé a mirar a través de la gem pero no podía ver cómo funcionaba realmente.

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

¡Gracias!

Me encontré con una situación similar en la que realmente no tenía que 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 

Otra opción:

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

Tiene razón. El administrador activo usa InheritedResources , todas las demás herramientas que puede ver al final de la página .

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

 controller do def call_before_create(offer) end end