更新rails中多对多直通设置的关联对象



我在Rails 4应用程序中有以下模型:

<>之前任命has_many:可调度的Has_many:services,通过::可调度程序服务has_many:可调度的Has_many:appointment,通过::schedulables可调度的belongs_to:服务belongs_to:预约之前

在视图(一个日历js组件)端,我有一个POST请求(AJAX调用),用约会所拥有的服务列表更新约会。该列表被设置为一个字符串(名为"service_ids"),其中包含以逗号分隔的服务id -例如:"1,2,3"。

在Rails中更新给定输入"service_ids"的约会列表的最佳方法是什么?或者任何不同的选项来发布服务列表以更新约会对象实例下的"可调度"。

注意:对于创建具有相关日程安排实例的约会,我有以下命令:

@service_ids = params[:service_ids].split(',')
@service_ids.each do |service_id|
  @appointment.schedulables.build(:service_id => service_id.to_i)
end
  @appointment.service_ids = params[:service_ids].split(',')
编辑1:

关联声明通过使用元编程在模型上生成几个方法。参见http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

在这种情况下是

other_ids = (id1, id2, id2)
NOTE: other stays for the association name - 'service' in your case

最新更新