如何使重复操作RESTful

时间:2011-10-14 22:21:42

标签: ruby-on-rails ruby-on-rails-3 rest ruby-on-rails-3.1

我有一个非常简单的Rails应用程序,它对一个对象(Path)执行常规的CRUD操作,这一切都非常适合Rails的REST哲学。但是,现在我需要添加一个“复制”功能(即从现有路径创建新路径)。我已将它添加为我的path_controller中的一个(RESTfull)动作,到目前为止一直很好(可能不完全符合REST原则,但我不是纯粹主义者)。

现在我想扩展功能,以便用户可以选择从现有路径创建一个全新的路径将现有路径复制到另一个已经存在的路径(复制其子路径) 。这意味着我需要一些额外的观点:

  • 允许他们选择选项1(创建新对象)或选项2(复制到现有对象)的选项。
  • 如果选择选项2,我需要另一个视图,然后让他们选择要复制到的路径。

这些视图中的每一个都需要一个相应的操作,而我正在努力争取这一切都适合REST。

这是一个相当简单的示例,但随着我的UI变得越来越复杂,我总是遇到这个问题:如何让我的操作需要我的UI适合REST控制器?

1 个答案:

答案 0 :(得分:1)

只需向您的资源添加新的收集路线:

resources :paths do
  collection do
    get :duplicate
  end
end

并为路径控制器和视图添加一个重复的方法......

现在您可以访问和寻址用户选择的特定路线。