gpt4 book ai didi

ruby-on-rails - 为什么我需要更加努力地使我的 Rails 应用程序适应 RESTful 架构?

转载 作者:数据小太阳 更新时间:2023-10-29 06:26:37 28 4
gpt4 key购买 nike

我最近开始了一个 Rails 项目,并决定使用 RESTful Controller 。我为我的关键实体(例如国家/地区)创建了 Controller 并添加了 indexneweditcreate显示更新删除。我将我的 map.resources :country 添加到我的路线文件中,生活很美好。

开发稍有进展后,就开始遇到问题了。我有时需要在我的 Controller 中执行额外的操作。首先是 search 操作,它返回我喜欢的自动完成搜索框的选项。然后需要在应用程序的不同位置以两种不同的方式显示国家/地区(显示的数据也不同,所以它不仅仅是两个 View )- 我添加了 index_full 操作。然后我想在 URL 中按名称而不是 ID 显示国家/地区,因此我添加了 show_by_name 操作。

当您需要超出标准indexneweditcreateshowupdatedelete 在 Rails 的 RESTful Controller 中?我是否需要在 routes.rb 文件中添加(和维护)手动路由(这很痛苦),它们是否在不同的 Controller 中,我是否变得不稳定或者我是否遗漏了一些基本的东西?

我想我是在问,我是否需要更加努力地工作并将操作添加到我的 routes.rb 文件中以获得 RESTful 的特权?如果我不使用 map.resources 添加 REST 好东西,标准的 :controller/:action, :controller/:action/:id 路由会处理很多一切都是自动的。

最佳答案

我会将search 视为index 的特例。这两个操作都返回一个资源集合。请求参数应指定页面、限制、排序顺序和搜索查询等内容。

例如:

/resources/index # normal index
/resources/index?query=foo # search for 'foo'

在 resources_controller 中:

before_filter :do_some_preprocessing_on_parameters

def index
@resources = Resource.find_by_param(@preprocessed_params)
end

至于index_fullsearch_by_name,您可能会考虑将当前 Controller 一分为二。你描述的东西有一股味道。

话虽如此,当您的应用未通过 /:controller/:action/:id 提供任何内容时,强制您的应用使用用户 restful 路由毫无意义,这是完全正确的。要做出决定,请查看您在表单和链接中使用 restful 资源路由助手的频率。如果您不使用它们,我就不会费心了。

关于ruby-on-rails - 为什么我需要更加努力地使我的 Rails 应用程序适应 RESTful 架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/230335/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com