我已经更新了我的服务器红宝石1.9.2,这停止工作(轨3.0.6):to_xml包括在轨不起作用3.0.6红宝石1.9.2
def index
@musicians = Musician.includes(:instruments)
render :xml => @musicians.to_xml(:include => :instruments)
end
,这些模型:
class Musician < ActiveRecord::Base
has_and_belongs_to_many :instruments
end
class Instrument < ActiveRecord::Base
has_and_belongs_to_many :musicians
end
我得到这个错误:
undefined method `type' for nil:NilClass
框架跟踪:
activesupport (3.0.6) lib/active_support/whiny_nil.rb:48:in `method_missing'
activerecord (3.0.6) lib/active_record/serializers/xml_serializer.rb:230:in `compute_type'
activemodel (3.0.6) lib/active_model/serializers/xml.rb:22:in `initialize'
activemodel (3.0.6) lib/active_model/serializers/xml.rb:75:in `new'
activemodel (3.0.6) lib/active_model/serializers/xml.rb:75:in `block in serializable_attributes'
任何线索我做错了什么?
我刚刚测试了这一点,它给了我一个不同的错误:“未定义的方法'宏”的零:NilClass”。我可以通过创建一个视图来轻松解决这个问题,但我仍然想知道这里出了什么问题。感谢您的输入! – 2011-04-14 11:41:10
您宁可为连接表创建模型,而不是视图。你也可以试试':include => {:musicians_instruments =>:instruments}'。 – dombesz 2011-04-14 12:14:40