【发布时间】:2023-03-24 12:35:01
【问题描述】:
我有一个简单的应用程序,它有三个模型Assessment、Question 和AssessmentQuestion
在Assessment 我有这样的关联,
class Assessment < ActiveRecord::Base
has_many :assessment_questions, dependent: :destroy
has_many :questions, through: :assessment_questions
end
在Question 我有,
class Question < ActiveRecord::Base
has_many :assessment_questions, dependent: :destroy
has_many :bank_questions, dependent: :destroy
end
在AssessmentQuestion 我有,
class AssessmentQuestion < ActiveRecord::Base
belongs_to :question
belongs_to :assessment
end
assessment_questions 表有:assessment_id、:question_id 和:mark 列
我有使用ActiveAdmin gem 的管理界面。
在管理界面中创建评估时,在 admin/assessment.rb 我有一个由 formtastic gem 生成的表单,
form do |f|
f.inputs do
f.input :name
f.input :duration
f.input :questions, as: :check_boxes, member_label: :id
f.input :creator_id
end
f.actions :commit
end
这看起来很好,没有问题。我想要的是在通过复选框选择问题时,我希望每个包含问题标记的复选框下方或侧面的文本框将分别填写在文本框中(通过 question.assessment_question.mark 关联),以便我可以编辑预填充在创建评估时标记问题或保持原样。
我试过了,但是遇到了一些错误,比如
undefined method `to_sym' for {:for=>:questions}:Hash
我的代码,
form do |f|
f.inputs do
f.input :name
f.input :duration
f.input for: :questions do | question |
f.input :question, as: :select
f.input question.assessment_question.mark
end
f.input :creator_id
end
f.actions :commit
end
有什么解决办法吗?
【问题讨论】:
标签: ruby-on-rails activeadmin formtastic