ActiveAdmin has_many具有自定义收集顺序

时间:2019-03-06 13:33:22

标签: ruby-on-rails activerecord activeadmin

给出以下模型:

function subarrs(numSub, numValue, value) {
  let arr = [];
  for (let i = 0; i < numSub; i++) {
    arr.push(new Array(numValue));
  }
  arr.forEach(function(sub) {
    sub.fill(value);
  });
  return arr;
}

console.log(subarrs(3, 2, 'test'));

有什么方法可以在ActiveAdmin has_many输入中设置自定义顺序吗?我不想启用拖放功能,因此class WorkoutProgram < ApplicationRecord has_many :workouts, dependent: :destroy end class Workout < ApplicationRecord belongs_to :workout_program end 不是一个选择。想法是按照编辑sortable时添加锻炼的顺序显示锻炼。

作为一种解决方法,我仅在WorkoutProgram中使用另一个has_many关系。所以我添加了模型:

WorkoutProgram

,然后像这样在ActiveAdmin页面中使用它:

has_many :ordered_workouts, -> { ordered_by_id },
           class_name: Workout.to_s, dependent: :destroy, inverse_of: :workout_program

1 个答案:

答案 0 :(得分:2)

您可以这样做:

form.has_many :workouts, for: [:workouts, form.object.workouts.ordered_by_id] #, ...