Я пытаюсь отобразить XML из приложения-службы.
В модели отношение определяется как:
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: undefined метод `macro 'для ошибки nil: 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
Но мне бы очень хотелось иметь возможность возвращать как ошибки, так и эту другую коллекцию. Может быть, кто-то может пролить свет на то, почему я получаю эту ошибку.