Activeadmin Formtastic 自定义输入

Kan*_*van 7 ruby-on-rails formtastic activeadmin

我有一个简单的应用程序,它有三个模型AssessmentQuestion以及AssessmentQuestion

Assessment我有这样的协会,

class Assessment < ActiveRecord::Base
  has_many :assessment_questions, dependent: :destroy
  has_many :questions, through: :assessment_questions
end
Run Code Online (Sandbox Code Playgroud)

Question我有,

class Question < ActiveRecord::Base
  has_many :assessment_questions, dependent: :destroy
  has_many :bank_questions, dependent: :destroy
end
Run Code Online (Sandbox Code Playgroud)

AssessmentQuestion我有,

class AssessmentQuestion < ActiveRecord::Base
  belongs_to :question
  belongs_to :assessment
end
Run Code Online (Sandbox Code Playgroud)

评估问题表有:assessment_id,:question_id:mark

我有使用ActiveAdmingem 的管理界面。

在管理界面中创建评估时,在 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
Run Code Online (Sandbox Code Playgroud)

该页面的屏幕截图

这看起来很好,没有问题。我想要的是在通过复选框选择问题时,我希望每个包含问题标记的复选框下方或侧面的文本框将分别填充在文本框中(通过question.assessment_question.mark关联),以便我可以编辑预填充的标记在创建评估时提出问题或保持原样。

我试过了,但有一些错误,比如

undefined method `to_sym' for {:for=>:questions}:Hash
Run Code Online (Sandbox Code Playgroud)

我的代码,

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
Run Code Online (Sandbox Code Playgroud)

任何解决方案?

Kan*_*van 2

最后,我想通了。

我实际上创建了一个自定义semantic_form_for表单_form.html.erb作为部分内容并将其包含在 admin/assessment.rb 文件中

form partial: 'assessment/form'
Run Code Online (Sandbox Code Playgroud)

我就是这样解决的。

参考: http: //activeadmin.info/docs/5-forms.html