任何人都可以解釋爲什麼會發生這種情況?Ruby on Rails奇怪的行爲與ActiveRecord錯誤處理
mybox:$ ruby script/console
Loading development environment (Rails 2.3.5)
>> foo = Foo.new
=> #<Foo id: nil, customer_id: nil, created_at: nil, updated_at: nil>
>> bar = Bar.new
=> #<Bar id: nil, bundle_id: nil, alias: nil, real: nil, active: true, list_type: 0, body_record_active: false, created_at: nil, updated_at: nil>
>> bar.save
=> false
>> bar.errors.each_full { |msg| puts msg }
Real can't be blank
Real You must supply a valid email
=> ["Real can't be blank", "Real You must supply a valid email"]
到目前爲止,這是完美的,這就是我想要的錯誤消息閱讀。現在更多:
>> foo.bars << bar
=> [#<Bar id: nil, bundle_id: nil, alias: nil, real: nil, active: true, list_type: 0, body_record_active: false, created_at: nil, updated_at: nil>]
>> foo.save
=> false
>> foo.errors.to_xml
=> "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<errors>\n <error>Bars is invalid</error>\n</errors>\n"
這是我無法弄清楚。爲什麼我得到酒吧是無效的與上面顯示的錯誤信息,[「真實不能空白」,「真實的你必須提供一個有效的電子郵件」]等
我的控制器只是有一個respond_to方法與以下其中:
format.xml { render :xml => @foo.errors, :status => :unprocessable_entity }
我該如何獲得這個輸出真正的錯誤信息,以便用戶瞭解他們做錯了什麼?如何在我的控制器中編寫我的渲染方法以顯示所有適當的錯誤消息?
我需要編寫一個xml構建器模板來顯示這些錯誤消息嗎? – randombits 2010-04-22 01:18:49
查看我的編輯... – 2010-04-22 01:23:10
有機會看到我如何去做這個事情的例子嗎?希望能夠在我的xml輸出中顯示所有子錯誤。 – randombits 2010-04-22 01:25:42