Как проверить, является ли строка json в модели Rails

Я создаю простое приложение и хочу иметь возможность хранить строки json в базе данных. У меня есть интерфейс таблицы со столбцом json, и я хочу, чтобы моя модель рельсов проверяла значение строки. Примерно так:

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

Как мне это сделать?

31
задан Jasper Kennis 6 July 2011 в 09:31
поделиться

1 ответ

Самый простой и изящный путь, imo. Вершина upvoted ответы или возвратит true при передаче строки, содержащей целые числа или плавания, или бросит ошибку в этом случае.

def valid_json?(string)
    hash = Oj.load(string)
    hash.is_a?(Hash) || hash.is_a?(Array)
rescue Oj::ParseError
    false
end
0
ответ дан 27 November 2019 в 21:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: