2013-10-30 80 views
0

我從 render :json=> {"status"=>"failed",:errors=>@user.errors.messages}.to_json自定義錯誤3

{ 
    "status": "failed", 
    "errors": { 
     "Email": [ 
      "has already been taken" 
     ], 
     , 
     "Username": [ 
      "has already been taken" 
     ] 
    } 
} 

消息的錯誤,但我想定製的錯誤:

{ 
     "status": "failed", 
     "errors": { 
      "error": [ 
       "Email has already been taken" 
      ], 
      , 
      "error": [ 
       "Username has already been taken" 
      ] 
     } 
    } 

請幫我解決這個問題。感謝您的支持。

+0

嘗試訪問來自'@ user.errors.messages'的電子郵件和用戶名值,並且不能使用名稱「error」對兩個值進行索引 – shiva

+0

爲什麼需要此json結構?如果你只是想改變消息內容,你可以嘗試http://stackoverflow.com/questions/6966263/rails-custom-validation-message – duykhoa

回答

0

您可以在User模型中實現方法my_custom_errors_messages。或者在模塊中並將其包含在模型中。你會在哪裏改變錯誤有你想要的。

你也可以看看full_messages()它可能會幫助你。

+0

請給我詳細的解決方案。非常感謝。 –

+0

什麼樣的細節?定義方法,使用像'map'這樣的可枚舉方法並準備你想要的哈希。 – ck3g

+0

閱讀關於模塊:http://ruby-doc.org/core-2.0.0/Module.html閱讀關於enumerable:http://ruby-doc.org/core-2.0.0/Enumerable.html – ck3g