В принципе, вы можете использовать YourModel.new.from_json(json_string)
, но как это ведет себя, зависит от логического значения ActiveModel::Base.include_root_in_json
. Сначала установите значение false, если ваш json - простой хеш / объект, или оставьте его как true (по умолчанию), если ваш json - это тип вложенного хеша, создаваемого to_json
(снова по умолчанию).
Все, что делает этот метод, это декодирует json в хеш и вызывает self.attributes = hash
, так что вы можете легко сделать это сами.
Что касается недостатков, то в этом процессе нет ничего особенного. По сути, вы делаете то же самое, что делаете в стандартном create
методе контроллера, изобилует валидациями, ограничениями attr_accessible и т. Д.