Вложенная форма в Active Admin - PullRequest
0 голосов
/ 22 ноября 2011

Мне нужна помощь!У меня есть 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

Кроме того, в активном Admin:

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

Он имеет красивую форму, которая не создает фактический объект вопроса!Зачем?Я старался изо всех сил, чтобы решить эту проблему, но мне не удалось.

Ответы [ 2 ]

0 голосов
/ 28 марта 2013

Попробуйте создать объект,

f.has_many :poll_questions, PollQuestion.new do |question|
  question.input :text
end
0 голосов
/ 22 ноября 2011

Это, вероятно, потому что у вас есть двойной уровень для acceptpts_nested_attributes_for. Почему бы не создать новую модель для ответов на опрос, которая имеет много ответов на опрос?

Затем вы должны настроить accepts_nested_attributes_for: poll_answers в классе PollResponse.

Тогда вы можете не только разобраться с проблемами в форме, но и отследить, кто ответил на опрос (потенциально) и когда был создан ответ на опрос. Модель PollResponses также должна принадлежать опросам, чтобы определить, на какой опрос был получен ответ.

...