Spec-Zone.ru › Ruby on Rails 4.1

модуль ActiveModel::Serializers::Xml

Включенные модули:
ActiveModel::Serialization

Active Модель сериализатор XML

Публичные методы экземпляра

from_xml(xml) Показать исходный код

Устанавливает модель attributes из строки XML. Возвращает self.

class Person
  include ActiveModel::Serializers::Xml

  attr_accessor :name, :age, :awesome

  def attributes=(hash)
    hash.each do |key, value|
      instance_variable_set("@#{key}", value)
    end
  end

  def attributes
    instance_values
  end
end

xml = { name: 'bob', age: 22, awesome:true }.to_xml
person = Person.new
person.from_xml(xml) # => #<Person:0x007fec5e3b3c40 @age=22, @awesome=true, @name="bob">
person.name          # => "bob"
person.age           # => 22
person.awesome       # => true
# File activemodel/lib/active_model/serializers/xml.rb, line 232
def from_xml(xml)
  self.attributes = Hash.from_xml(xml).values.first
  self
end
to_xml(options = {}, &block) Показать исходный код

Возвращает XML, представляющий модель. Настройка может быть передана через options.

Без каких-либо options, возвращаемая строка XML будет включать все атрибуты модели.

user = User.find(1)
user.to_xml

<?xml version="1.0" encoding="UTF-8"?>
<user>
  <id type="integer">1</id>
  <name>David</name>
  <age type="integer">16</age>
  <created-at type="dateTime">2011-01-30T22:29:23Z</created-at>
</user>

Параметры :only и :except могут быть использованы для ограничения включаемых атрибутов и работают аналогично методу attributes.

Для включения результата вызовов некоторых методов модели используйте :methods.

Для включения ассоциаций используйте :include.

Для дополнительной документации см. ActiveRecord::Serialization#to_xml.

# File activemodel/lib/active_model/serializers/xml.rb, line 204
def to_xml(options = {}, &block)
  Serializer.new(self, options).serialize(&block)
end

© 2004–2016 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API