【发布时间】:2010-09-18 19:45:16
【问题描述】:
我最近开始了一个 Rails 项目,并决定使用 RESTful 控制器。我为我的关键实体(例如 Country)创建了控制器,并添加了 index、new、edit、create、show、update 和 delete。我将我的map.resources :country 添加到我的路线文件中,生活很好。
开发有点进展后,我开始遇到问题。我有时需要在我的控制器中执行额外的操作。首先是search 操作,它返回了我喜欢的自动完成搜索框的选项。然后需要在应用程序的不同位置以两种不同的方式显示国家/地区(显示的数据也不同,因此不仅仅是两个视图) - 我添加了index_full 操作。然后我想在 URL 中按名称而不是 id 显示国家/地区,因此我添加了 show_by_name 操作。
当您需要在 Rails 的 RESTful 控制器中执行超出标准 index、new、edit、create、show、update、delete 的操作时,您会怎么做?我是否需要在 routes.rb 文件中添加(和维护)手动路由(这很痛苦),它们是否进入不同的控制器,我是否变得不稳定或我错过了一些基本的东西?
我想我在问,我是否需要更加努力地工作并在我的 routes.rb 文件中添加操作以获得 RESTful 的特权?如果我不使用 map.resources 添加 REST 好东西,标准的 :controller/:action, :controller/:action/:id 路由将自动处理几乎所有事情。
【问题讨论】:
-
由于 Rails 的默认方法,REST 的含义似乎存在很多混淆。 REST 不仅限于这些方法,而且根本与那些特定方法无关。我也不明白为什么您觉得在向控制器添加其他方法时必须更加努力。
标签: ruby-on-rails ruby model-view-controller rest