Question: answers\_controller:

```
@questions = Question.order("qtype, position")
@ans = Answer.where(user_id = current_user.id)
@answers = @questions.map { |q| [q, @ans.find_by_question_id(q.id)] }

```

view:

```
<%= form_for @answers, :remote => true do |form| %>

```

Is the error because @answers is is mapped? Any help is appreciated.

UPDATE:

Answer model:

```
belongs_to :user
belongs_to :question

```

User model:

```
has_many :answers

```

Question model:

```
has_many :answers

```

UPDATE 2:
I copied and pasted the following into the controller.

```
@answers = current_user.answers.questions

```

I got the following:

```
undefined method `questions' for #<Class:0x1032d6d98>

```

I tried going adopting the second approach - User model:

```
has_many :answers, :through => :answers

```

controller:

```
@questions = current_user.questions

```

and got:

```
undefined method `questions' for #<User:0x103569ec0>
app/controllers/answers_controller.rb:18:in `index'

```

Answer: 
```
@answers = @questions.map { |q| [q, @ans.find_by_question_id(q.id)] }

```

This gives you an array of arrays which in turn contain the question and another array of all of the question's answers. Like this:

```
[[q1, [q1_answer1, q1_answer2]], [q2, [q2_answer1, q2_answer2,...]], ...]

```

So each of the answers are in an array that itself is 2 levels deep inside @answers.

As for your problem when you reference current\_user.answers, you get back an array of answers. 

Associations are for an instance of a class, not a collection of them. That is, you can call answer.question to get the question associated with a given answer. However, you can't just call answers.questions as above, because a)answers is an array, not an Answer instance, and b) the association is 'question', not 'questions' 

If you're trying to get all questions for all answers, you need to some sort of operation on each answer, like this:

```
questions = current_user.answers.map{|answer| answer.question}

```

which will map each question for each answer into an array. Note that if a user has multiple answers for a question, that question will end up in the array multiple times. It can be deduped with the 'uniq' method.
If I understand correctly, you want to list all answers, but in the same order as your questions.

I am assuming your models look like

```
class User
  has_many :questions, :through => :answers
  has_many :answers
end

class Question
  has_many :answers
  has_many :users, :through => :answers
end

class Answer
  belongs_to :user
  belongs_to :question 
end

```

Getting the questions of the `current_user` should then just become:

```
@questions = current_user.questions.order("qtype, position")

```

getting the corresponding answers then becomes

```
@answers = @questions.map{|q| q.answer}

```

Hope this helps.