【发布时间】:2015-02-07 16:02:04
【问题描述】:
我正在开发带有单独 Rails/Angular 前端代码库的 Rails API 后端。 Rails API 的响应必须以某种方式构建以匹配前端的 flash 消息。 A(n)(稍微归结)示例控制器响应是
render json: {status: "Unauthorized", code: "AUTH.UNAUTHORIZED", fallback_msg: "Unauthorized request"}
所以基本上我所有的控制器都充满了这个,有时当一个方法有 5 个可能的响应时(例如:如果用户重置他们的电子邮件,响应可能是无效的密码、无效的电子邮件、电子邮件已经注册等)。一位同事建议将这些方法抽象到模型中,因此模型是对发送回这些消息的响应,然后控制器可以拥有
def ctrl_method
user = User.update(password: password)
render json: user, status(user)
end
(其中 status 是另一种基于对象的 status 属性提供 HTTP 状态代码的方法)
我的问题是这是最佳实践吗?我了解 Rails MVC,感觉发送 json 消息的责任属于控制器而不是模型。
【问题讨论】:
标签: ruby-on-rails json model-view-controller