Ошибка сохранения вложенных атрибутов - PullRequest
0 голосов
/ 27 марта 2011

У меня есть модели

class Survey < ActiveRecord::Base
  has_many :questions
  acts_as_list

  validates :title, :presence =>true
  validates :short_description, :presence=>true
  validates :description, :presence=>true

end


class Question < ActiveRecord::Base
  belongs_to :survey
  has_many :options

  accepts_nested_attributes_for :options, :reject_if => lambda { |a| a[:title].blank? }, :allow_destroy => true

  acts_as_list :scope=>:survey
end

class Option < ActiveRecord::Base
  attr_accessible :title, :description, :position
  belongs_to :question

  acts_as_list :scope=>:survey
end

, когда я сохраняю или обновляю модель вопроса, выдается ошибка

@question        = Question.new(params[:question])
@question.save
@question        = Question.find(params[:id])
@question.update_attributes(params[:question])

В обоих случаях выдается ошибка

NoMethodError (undefined method `survey_id' for #<Option:0xb332394>):
  app/controllers/admin/questions_controller.rb:47:in `block in create'
  app/controllers/admin/questions_controller.rb:46:in `create'

Я не могу понять, почему он генерирует эту ошибку, так как Option не имеет никакого отношения к опросу

1 Ответ

0 голосов
/ 27 марта 2011

Может ли это быть (по выбору):

class Option < ActiveRecord::Base
  attr_accessible :title, :description, :position
  belongs_to :question

  acts_as_list :scope=>:survey   # <-- no survey_id ??
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...