0
我试图从服务应用程序呈现xml。在to_xml中包含ActiveRecord错误时抛出NoMethodError
在该模型中,所述关系被限定为:
class Customer < ActiveRecord::Base
has_many :licenses
accepts_nested_attributes_for :licenses
end
在我的控制器,我有以下代码:
if @customer.save
render :xml => @customer, :status => :created
else
render :xml => @customer.to_xml(:include => [:errors, :licenses]), :status => :unprocessable_entity
end
但这失败,NoMethodError:未定义的方法`宏”为零:NilClass错误。
在控制台上,我可以复制误差足够简单:
>params = {...}
>c = Customer.new(params)
>c.save
=> false
>c.errors
=> #<ActiveRecord::Errors::...
>c.to_xml(:include => :errors)
NoMethodError: undefined method `macro' for nil:NilClass
... Stack Trace ...
>c.errors.to_xml
=>XML Showing Errors
我知道,我可以使错误很容易够XML作为:
render :xml => @customer.errors
但是,我真的很喜欢能够返回错误和这个其他集合。也许有人可以对我为什么得到这个错误提供一些见解。
感谢方法,这个工作的魅力。 – idbentley 2010-10-27 14:53:39