0

とのような 2 つのモデルがあるQuestionとしAnswerます。Questionには のような 3 つの列がquestion_id, question_type, question_textあり、Answer3 つの値がありますanswer_id, question_id, answer_text

Answerモデルのフォームを作成しています。

例:

<%= f.text_field :question_id %>.
<%= f.hidden_field :question_id %>.

ここでは、 を使用してhidden fieldを検索していquestion_typeます。方法を試しましたmapが、うまくいきません。question_typeだから誰かがその選択によって価値を得るのを手伝ってくださいquestion_id

ありがとう

4

2 に答える 2

1

コントローラで回答を取得するときに質問を含めることができます。そうすれば、ビューに追加のクエリを実行しなくても、両方に完全にアクセスできます。

コントローラー内:

@answer = Answer.includes(:question).where(:id => params[:answer_id])

ビューで:

<%= @answer.question.question_type %>

これが新しい答えである場合は、それを作成して、コントローラーで質問を渡すことができます。

@answer = Answer.new(:question => Question.find(params[:question_id]))

次に、フォームで次の方法でアクセスできます。

<%= @answer.question.question_type %>
于 2012-10-10T21:36:12.940 に答える
1

イオリの言ったことに便乗する。モデルの関係が正しく設定されている場合、ドット表記を使用して answer.question.question_type のように question_type を取得できるはずです。

次のようなものが必要になります...

class Question < ActiveRecord::Base
  has_many :answers
  accepts_nested_attributes_for :answers
end

class Answer < ActiveRecord::Base
  belongs_to :question
end

したがって、これにより、 answer.question.question_type を呼び出すことができますが、関連付けの構築に役立つ accept_nested_attributes_for :answers を呼び出すこともできません。

Ryan Bates は、これに関する優れたスクリーンキャストを提供していますhttp://railscasts.com/episodes/196-nested-model-form-part-1

幸運を!

于 2012-10-11T13:45:02.807 に答える