Activeadmin Formtastic自定义输入

时间:2014-10-23 06:24:25

标签: ruby-on-rails activeadmin formtastic

我有一个简单的应用,它有三个模型AssessmentQuestionAssessmentQuestion

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

Screen shot of that page

这看起来很好,没问题。我想要的是在通过复选框选择问题时,我希望下面的文本框或侧面包含问题标记的每个复选框将分别填入文本框(通过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

任何解决方案?

3 个答案:

答案 0 :(得分:1)

最后,我想通了。

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

form partial: 'assessment/form'

这就是我解决的方法。

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

答案 1 :(得分:0)

我会创建一个包含复选框和字符串输入的自定义输入:

https://github.com/justinfrench/formtastic#modified--custom-inputs

答案 2 :(得分:0)

解决方案很明显,你的“f.input:for”错过了一个“s”。 它应该是f.inputs