小编glm*_*lm4的帖子

ActiveAdmin has_many 具有自定义收集顺序

鉴于以下模型:

class WorkoutProgram < ApplicationRecord
  has_many :workouts, dependent: :destroy
end

class Workout < ApplicationRecord
  belongs_to :workout_program
end
Run Code Online (Sandbox Code Playgroud)

有没有办法在 ActiveAdmin has_many 输入中设置自定义顺序?我不想启用拖放,所以sortable不是一个选项。这个想法是按照编辑 .csv 文件时添加的相同顺序显示锻炼WorkoutProgram

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

has_many :ordered_workouts, -> { ordered_by_id },
           class_name: Workout.to_s, dependent: :destroy, inverse_of: :workout_program
Run Code Online (Sandbox Code Playgroud)

然后在 ActiveAdmin 页面中使用它,如下所示:

form.has_many :ordered_workouts, allow_destroy: true do...
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails activeadmin

1
推荐指数
1
解决办法
613
查看次数

标签 统计

activeadmin ×1

activerecord ×1

ruby-on-rails ×1