Rails路由和AJAX请求

时间:2014-04-23 18:55:37

标签: jquery ruby-on-rails ajax rails-routing

我现在完全陷入困境,可以真正使用一些帮助。

这是我尝试做的事情。我使用Ruby on Rails,我有两个模型。一个是练习,一个是常规。常规由各种练习组成。我目前已经进行了设置,因此我可以将练习列表拖放到当前所选例程的练习列表中。为了建模这种关系,我有一个exercise_routine模型,它匹配exercise_id和routine_id来模拟它们相关联的模型。所以,我接下来要做的是当用户在所有拖动之后点击保存更改时我使用jQuery来组合列表中所有exercise_id的数组。

现在是我被困的部分。然后我想将该列表传递给exercise_routine控制器的create动作。在那个创建动作中,我会将该练习列表与已存在的任何动作进行比较,并创建任何新的关联并删除已删除的关联。

我见过多个例子,但没有一个例子适合我。所以,我已经回到了我需要传递给控制器​​的id数组。我现在的问题是如何成功地将该数组作为参数传递给create action,或者我应该将它发送到exercise_routine控制器的其他地方?我认为我使用的AJAX请求很好,但路由实际上是让我循环。

感谢任何帮助。如果您需要查看任何代码或任何我需要更新的内容。

1 个答案:

答案 0 :(得分:0)

# send an ajax request with your ids
$.ajax
  url: "routines/1"
  type: "PUT",
  data: { exercice_ids: getExerciceIds() }
  success: function() {}


# update the routine exercice ids in the controller
def update
  @routine = Routine.find(params[:id])
  @routine.exercice_ids = params[:exercice_ids]
  @routine.save
end

这应该有效。您可能希望执行除update以外的其他操作。