我有一个包含HTML和JSON端点的Rails应用程序,并且iOS应用程序正在使用JSON。 iOS开发人员希望将所有错误消息输出从{"errors":{"email":["has already been taken"],"password":["is too short (minimum is 6 characters)"]}}
更改为{ "error" : "message"}
形式,但似乎没有一个好地方可以执行单个修复/格式化。
.full_messages
errors
或其他变体变为error
full_messages
,还是需要将其拼接到所有错误调用中?as_json
中重新开启ActiveRecord::Base
,但可能还有其他错误来自AR ...... 这些是迄今为止提到的潜在解决方案。
答案 0 :(得分:0)
可能迟到的答案,但如果它有助于增加更多的视角。
我使用RABL作为json表示层,并尝试使用它来向ios输出json错误。
RABL中的示例代码:
object @submission
child :errors do |e|
e.full_messages.each do |message|
node(:message){message}
end
end
现在,记录NSError *错误对象会在UserInfo字典中按预期方式提供以下内容: UserInfo = 0xa166bc0 {NSLocalizedRecoverySuggestion = {“submission”:{“fixnums”:[{“photo_file_size”:{“message”:“照片文件大小必须介于0字节和153600字节之间}}}}}
可以注意到UserInfo字典的值不返回ios字典友好格式。 '='代替':',数组有'['而不是'('和')'
是否建议的解决方案可能为NSString添加一个类别,用NSDictionary友好的文本格式替换返回对象中的所有这些非字典元素,然后转换为ios NSDictionary并使用标准对象访问方法?我想知道这是正确的方法,还是有更好,更优雅的方式?谢谢。