【发布时间】:2015-10-27 09:50:05
【问题描述】:
我正在为一个有球员和球队的运动队开发 Rails 4 API,但我在 rails 路由和 has_many 关系方面遇到了一些困难。我的球员和球队之间的关系是这样的:
class Team < ActiveRecord::Base
extend Searchable
validates :title, presence: true
has_and_belongs_to_many :players
end
class Player < ActiveRecord::Base
extend Searchable
validates :first_name, presence: true
validates :last_name, presence: true
has_and_belongs_to_many :teams
end
我希望能够将现有球员添加到球队,但我不确定如何更改我的 routes.rb 文件。目前,它看起来像:
Rails.application.routes.draw do
devise_for :users
namespace :api, defaults: { format: :json },
constraints: { subdomain: 'api' }, path: '/' do
scope module: :v1 do
resources :users, :only => [:show, :create, :update, :destroy]
resources :teams, :only => [:show, :create, :update, :destroy, :index]
resources :players, :only => [:show, :create, :update, :destroy, :index]
resources :sessions, :only => [:create, :destroy]
end
end
end
允许对球员和球队模型进行 CRUD 操作。我在想,要将一名球员添加到现有球队,我的路线需要如下所示:
/teams/:team_id/add_player/
但我不确定如何在routes.rb 中声明该路由。所以,有几个问题:
- 从 REST-ful 的角度来看,这条路线对人们有意义吗?如果是这样,我将如何在
routes.rb中声明这条路线 - 应该是 PATCH 还是 POST 方法来将球员添加到球队?
感谢您提供的任何帮助,
肖恩
【问题讨论】:
-
喜欢你如何格式化你的路线!
标签: ruby-on-rails ruby ruby-on-rails-4 has-and-belongs-to-many