Ruby on rails 在两个模型之间交换关系的RESTful方法
我有一个用户和一个班次。用户有很多轮班Ruby on rails 在两个模型之间交换关系的RESTful方法,ruby-on-rails,rest,updates,Ruby On Rails,Rest,Updates,我有一个用户和一个班次。用户有很多轮班 class User < ActiveRecord::Base has_many :shifts end class Shift < ActiveRecord::Base belongs_to :user end class用户
class User < ActiveRecord::Base
has_many :shifts
end
class Shift < ActiveRecord::Base
belongs_to :user
end
class用户
我的一个用户无法进行轮班,因此希望与其他用户交换
最好的方法是什么?似乎我需要同时更新2个班次:需要交换的班次,然后是需要交换的班次。因此,这实际上不适合用于更改单个模型的
编辑
和更新
操作。这不适合单个资源的任何默认RESTful路由(成员路由)。一种可能性是添加新的RESTful收集路由:
def change_shift(shift_id_or_object, alt_user)
shift = Shift.find(shift_id_or_object) unless shift_id_or_object.respond_to? :user
shift.user = alt_user
shift
end
更多信息,请访问:
# routes.rb
resources :users do
collection do
post 'swap'
end
end