to_xml include在Rails 3.0.6 ruby 1.9.2中不起作用
|
我已经将服务器更新为ruby 1.9.2,并且这停止了工作(rails 3.0.6):
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\'
知道我在做什么错吗?
可能与以下内容有关:https://rails.lighthouseapp.com/projects/8994/tickets/4840-to_xml-doesnt-work-in-such-case-eventselecttitle-as-tto_xml
没有找到相关结果
已邀请:
3 个回复
磐乓铝举
属性,因此返回一个nil对象,从Ruby 1.9开始,该对象没有Rails依赖的
属性。 (我认为您链接到的线程中的补丁不起作用,但是我在下面提供的补丁起作用了。) 有两种方法可以解决此问题: 不要序列化
(好主意)。
或修补Rails核心(坏主意)。
艾食魄轻县
关联,则应该有一个名为
的联接表,您还必须包括嵌套的表。
请注意,包含与“ 13”关联中的不同。 更新资料 如果为联接表创建模型,则可以将
更改为
,其使用频率更高,并且操作相同。
此选项应与嵌套的ѭ17includes一起正常使用。
悸翠疮武昏