Estoy construyendo una aplicación simple y quiero poder almacenar cadenas json en una base de datos. Tengo una interfaz de tabla con una columna json, y quiero que mi modelo de rieles valide el valor de la cadena. Así que algo así como:Cómo validar si una cadena está json en un modelo de Rails
class Interface < ActiveRecord::Base
attr_accessible :name, :json
validates :name, :presence => true,
:length => { :minimum => 3,
:maximum => 40 },
:uniqueness => true
validates :json, :presence => true,
:type => json #SOMETHING LIKE THIS
:contains => json #OR THIS
end
¿Cómo puedo hacer eso?
¡Y todo se volvió verde, gracias! Gran tiempo de respuesta también :) He estado tratando de hacer algo como esto, pero mis habilidades de Rails están un poco polvorientas. –
Hmm, esto es extraño. Tengo pruebas rspec, una de las cuales requiere una cadena json válida como el valor de json, y todas estas son verdes. Pero mis pruebas de pepino fallan, y también falla la prueba de la vista en el servidor de rieles, indicando is_json? es un método indefinido He colocado la clase de validación que sugirió debajo de mi modelo, ¿está mal? –
Supongo que hay opiniones diferentes, pero parece que la mayoría de la gente está colocando sus extensiones de clase principal en 'config/initializers /' como '* .rb' (naturalmente) donde se cargan automáticamente después de cargar Rails. Otra opción es el directorio 'lib /', pero luego tendrá que decirle a Rails que cargue su archivo. – polarblau