Ale*_*rov 5 ruby-on-rails github-api
默认情况下调用rails.model.to_json
将显示如下内容:
{"name":["can't be blank"],"email":["can't be blank"],"phone":["can't be blank"]}
Run Code Online (Sandbox Code Playgroud)
我需要生成一些可以在服务客户端上使用的状态代码,而不是消息:
[{"field": "name", "code": "blank"}, {"field": "email", "code": "blank"}]
Run Code Online (Sandbox Code Playgroud)
这种方法与github api v3错误非常相似 - http://developer.github.com/v3/
如何使用Rails实现这一目标?
在您的模型上,您可以修改 json 的运行方式。例如,让我们假设您有一个 ActiveRecord 模型Contact。您可以覆盖as_json以修改渲染行为。
def Contact < ActiveRecord::Base
def as_json
hash = super
hash.collect {|key, value|
{"field" => key, "code" => determine_code_from(value)}
}
end
end
Run Code Online (Sandbox Code Playgroud)
当然,您也可以在Contact控制器上或什至在控制器中使用单独的方法生成 json。你只需要稍微改变你的渲染方法。
render @contact.as_my_custom_json
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1412 次 |
| 最近记录: |