Rails 3.2 question/answer with a through table

I have a person has many questions through person_questions. I have an
extra column in the join table for the answer. The section below works
for
a new submit but when I edit I get 3 each with the first 2 of each
selected
tand the third not so I get 6 check boxes some selected some not. Is
there
a way to get this to work properly os just the questions in the db show
up
once each with the appropriate ones checked?
The questions are in the db.

Questions:

<% Question.all.each do |question| %>
<%= f.fields_for :person_questions do |pregunta| %>
<%= render ‘questions/question_type’, :pregunta => pregunta,
:question => question, :f => f %>
<% end %>
<% end %>

Partial:

<%= pregunta.label question.name, (question.label_text unless question.label_text.nil?), :class => 'control-label' %>
<% if question.data_type == 'select' %> <%= pregunta.send(question.data_type, :answer, question.to_select,:class => "#{question.data_type}") %> <%= pregunta.hidden_field :question_id, :value => question.id , :class => "#{question.data_type}" %> <% else %> <%= pregunta.send(question.data_type, :answer, :class => "#{question.data_type}" ) %> <%= pregunta.hidden_field :question_id, :value => question.id , :class => "#{question.data_type}" %> <% end %>