2

我想在 Rails 中创建一些 API,如下所示:

  #         /teachers   /teachers/:id
  # Get     index       show
  # Post    create    
  # Put                 update
  # Delete  remove      destroy

我使用下面的代码来生成教师:

  # teachers
  resources :teachers, only: [:index, :show, :create, :update, :destroy] do
    collection do
      delete 'remove'
    end
  end
  delete '/teachers', to: redirect('/teachers/remove')

由于有很多对象,例如“程序”、“学生”、“东西”,现在我使用这样的代码来生成程序和其他对象:

  # programs
  resources :programs, only: [:index, :show, :create, :update, :destroy] do
    collection do
      delete 'remove'
    end
  end
  delete '/programs', to: redirect('/programs/remove')

我觉得有很多重复,我可以创建一些帮助程序来生成这些 API

4

1 回答 1

0

如果您有很多重复此操作的控制器,则可以迭代:

[:teachers, :programs].each do |res|
  resources res, only: [:index, :show, :create, :update, :destroy] do
    collection do
      delete 'remove'
    end
  end
  delete "/#{res}", to: redirect("/#{res}/remove")
end
于 2013-08-11T16:00:03.717 回答