我需要帮助! 我有2个模型用于调查:
class Poll < ActiveRecord::Base
has_many :poll_questions, :dependent => :destroy
accepts_nested_attributes_for :poll_questions, :reject_if => lambda { |a| a[:text].blank? }, :allow_destroy => true
end
问题的模型如下:(似乎这些关联是正确的)
class PollQuestion < ActiveRecord::Base
belongs_to :poll
has_many :poll_answers, :dependent => :destroy
accepts_nested_attributes_for :poll_answers, :reject_if => lambda { |a| a[:text].blank? }, :allow_destroy => true
end
此外,在活动管理员中:
ActiveAdmin.register Poll do
form do |f|
f.inputs "Main poll" do
f.input :title
f.input :description
end
f.inputs do
f.has_many :poll_questions do |question|
question.input :text
end
end
f.buttons
end
end
它有一个美丽的形式,不会创建一个实际的问题对象!为什么? 我已尽力解决问题,但我失败了。
答案 0 :(得分:0)
这可能是因为你对accepts_nested_attributes_for有一个双重关卡。为什么不为Poll响应创建一个新模型,这个模型有很多民意调查答案?
然后,您将在PollResponse类中设置accepts_nested_attributes_for:poll_answers。
然后,您不仅可以对表单问题进行排序,还可以跟踪谁(可能)回答了轮询,以及创建轮询响应的时间。 PollResponses模型也必须属于民意调查,以区分正在回答的民意调查。
答案 1 :(得分:0)
尝试创建对象
f.has_many :poll_questions, PollQuestion.new do |question|
question.input :text
end