0

私は3つのテーブルを持っています:

事業

has_many :answers

質問->すべてのプロジェクトが答えなければならない質問

 has_many :answers

答え

belongs_to :project

belongs_to :question

したがって、新しいプロジェクトを作成するときは、質問をループして回答レコードを作成したいと思います。次に、ユーザーはすべての質問を表示して回答を入力できます。

プロジェクトコントローラーで、これらのレコードを作成しようとしています。ただし、以下は機能していません。

  before_create :create_answers

protected
def create_answers
  Questions.each do |i|
    self.answers.build  contact_id: self.contact_id, question_id: Question[i].id
  end
end

ありがとう!!!

4

1 に答える 1

2

それ以外の:

Questions.each

行う:

Question.all.each

そのコードはすべて、ProjectsController ではなく、Project モデルに入れる必要があります。

そして代わりに:

Question[i].id

行う:

i.id

それらの属性もattr_accessible同様であることを確認してください。

すべて一緒に:

before_create :build_answers

protected
def build_answers
  Question.all.each do |question|
    answers.build contact_id: contact_id, question_id: question.id
  end
end

そして attr_accessible ビット:

attr_accessible :contact_id, :question_id
于 2013-01-11T19:54:29.067 に答える