glm*_*lm4 1 activerecord ruby-on-rails activeadmin
鉴于以下模型:
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)
你可以这样做:
form.has_many :workouts, for: [:workouts, form.object.workouts.ordered_by_id] #, ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
613 次 |
| 最近记录: |