Ruby on rails Rails索引控制器查找所有或创建记录

Ruby on rails Rails索引控制器查找所有或创建记录,ruby-on-rails,Ruby On Rails,我有一个API,我将在其中返回事件的交付方法。当管理员登录以查看交付方法屏幕(例如,编辑描述)时,API请求应返回他们创建或编辑的交付方法,但如果DB中不存在,则应生成一些默认方法 进入控制器的索引路径是个好主意吗?API请求类似于/API/delivery\u methods。代码看起来像: def index @delivery_methods = DeliveryMethod.find_all_or_create_defaults(current_admin) end 我没有测试

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

进入控制器的
索引
路径是个好主意吗?API请求类似于
/API/delivery\u methods
。代码看起来像:

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

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

拥有修改/创建资源的GET路由被认为不是一个好做法

特别是,该公约已经确立,缔约国 HEAD方法不应具有采取行动的意义 除了检索。这些方法应该被认为是“安全的”。 这允许用户代理表示其他方法,例如POST、PUT和PUT 并以特殊方式删除,以便用户了解 请求可能不安全的操作的事实。


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

拥有修改/创建资源的GET路由被认为不是一种好做法

特别是,该公约已经确立,缔约国 HEAD方法不应具有采取行动的意义 除了检索。这些方法应该被认为是“安全的”。 这允许用户代理表示其他方法,例如POST、PUT和PUT 并以特殊方式删除,以便用户了解 请求可能不安全的操作的事实。


生成默认记录应改为通过种子文件,rake任务或作为模型生命周期回调(如果需要在运行时创建)。

我认为更好的选择是在管理员模型上使用after_create操作,在管理员首次注册时设置这些默认交付方法。我认为更好的选择是在管理员模型上使用after_create操作来设置这些默认交付方法管理员首次注册时的交付方法。谢谢!这就是我在想的,我只是想问一下。谢谢!这就是我在想的,我只是想问一下。