0

我想将对象创建为 struct 并将其作为 xml 发送:

  def index
   katie = Struct.new(:name, :gender, :age).new("Katie", "F", 18)
   render :xml => katie
  end

但我收到错误:

18:Fixnum 的未定义方法 `bytesize'

有人可以给我任何建议吗?

4

1 回答 1

0

我知道这是在最初的问题之后很久,但这是另一个答案:

使用 ActiveModel 实现一个类并包含序列化支持。

class Person
  include ActiveModel::Serializers::Xml #also include json
  include ActiveModel::Model

  attr_accessor :name, :gender, :age

  def attributes
    {name: name, gender: gender, age: age}
  end
end

#and in your controller
def index  
  # should use a respond_to do |format| here
  render :xml => Person.new(:name => 'Katie', :gender => 'F', :age => 18)
end
于 2014-07-17T16:32:19.373 回答