我有一个简单的应用,它有三个模型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
任何解决方案?
答案 0 :(得分:1)
最后,我想通了。
我实际上创建了一个自定义semantic_form_for
表单_form.html.erb
作为部分表单,并将其包含在admin / assessment.rb文件中
form partial: 'assessment/form'
这就是我解决的方法。
答案 1 :(得分:0)
我会创建一个包含复选框和字符串输入的自定义输入:
https://github.com/justinfrench/formtastic#modified--custom-inputs
答案 2 :(得分:0)
解决方案很明显,你的“f.input:for”错过了一个“s”。 它应该是f.inputs