Rails索引控制器查找全部或创建记录

时间:2016-10-15 20:54:52

标签: ruby-on-rails

我有一个API,我将返回delivery_methods的事件。当管理员登录以查看传递方法屏幕(例如,编辑描述)时,API请求应返回他们创建或编辑的传递方法,但如果数据库中不存在,则应生成一些默认的传递方法。

放入控制器的index路径是个好主意吗? API请求类似/api/delivery_methods。代码看起来像:

def index
    @delivery_methods = DeliveryMethod.find_all_or_create_defaults(current_admin)
end

我没有测试任何代码,只是在这里要求“最佳实践”意见。谢谢!

1 个答案:

答案 0 :(得分:2)

拥有修改/创建资源的GET路由不被视为一种好习惯。

  

特别是,已经建立了GET和GET的惯例   HEAD方法不应该具有采取行动的意义   除了检索。应该考虑这些方法"安全"。   这允许用户代理表示其他方法,例如POST,PUT   和DELETE,以一种特殊的方式,使用户了解   事实上,要求采取可能不安全的行动   https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

如果需要在运行时创建默认记录,则可以通过种子文件,rake任务或模型生命周期回调来完成。