¿Es posible tener entradas múltiples para la opción :on
para la validación validates
?Rails valida ... multiple: on options?
algo como lo siguiente:
class Library < ActiveRecord::Base
validates :presence => true, :on => [:create, :update, :some_other_action]
end
Básicamente me gustaría ejecutar una validación particular, cuando múltiples acciones se denominan en el controlador. Por ejemplo, me gustaría validar alguna información de usuario en la acción create
, en una acción update
, y posiblemente algunas otras acciones también.
Aunque no quiero que la validación se ejecute en todos los métodos.
Además, si hay una manera más fácil de hacerlo, ¡eso también sería genial!
¡Gracias de antemano!
En realidad se puede utilizar contextos de validación personalizado.[: on - Especifica el contexto donde esta validación está activa (por ejemplo, on:: create o on:: custom_validation_context) '] (http://api.rubyonrails.org/classes/ActiveModel/Validations/ClassMethods.html#method- i-valida). Puede usar '#valid? (: My_context)' o '#save (context:: my_context)'. Desafortunadamente no hay forma de definir múltiples contextos a la vez (ni con 'on:' ni pasando una matriz (o múltiples parámetros) a '#valid?'. –