Рельсовые столы - PullRequest
       9

Рельсовые столы

1 голос
/ 08 февраля 2012

Я пытаюсь выяснить, как сделать объединение таблиц в одной из моих моделей.

Есть пункты, вопросы и пользователи.

point.rb

class Point < ActiveRecord::Base
    belongs_to :user
    belongs_to :question
end

question.rb

class Question < ActiveRecord::Base
    has_many :points
end

user.rb

class User < ActiveRecord::Base

В моем Контроллер очков Я делаю это:

def index
    @points = Point.all
    @user_points = Point.where('user_id' => current_user)
end

И в моем баллов / индекс просмотр:

    <% @user_points.each do |user_point| %>
  <tr>
    <td><%= current_user.name %></td>
    <td><%= user_point.question_id %></td>
    <td><%= user_point.correct_answer %></td>
    <td><%= user_point.user_answer %></td>
  </tr>
<% end %>

Мне нужно получить доступ к именикаждого вопроса в таблице вопросов (у меня есть идентификатор вопроса, доступный на мой взгляд. Я n00b к рельсам, и не могу понять, как это сделать с документацией.

Ответы [ 2 ]

1 голос
/ 08 февраля 2012

Если вы читаете мой предыдущий ответ, игнорируйте его. Я неправильно понял ваш вопрос. Это должно работать.

На ваш взгляд:

<% user_points.questions.each do |question| %>
  ...Do whatever...
<% end %>
0 голосов
/ 08 февраля 2012

Взгляните на Rails Guides, особенно эти два:

  1. http://guides.rubyonrails.org/association_basics.html
  2. http://guides.rubyonrails.org/active_record_querying.html

Я думаю, вы должны бытьвозможность установить это в вашей модели :

class User < ActiveRecord::Base
    has_many :points, :through => :questions
end

в вашем контроллере скажем @user_points = current_user.points

в вашем представлении .Это должно уже работать с вашим текущим кодом!

<% @user_points.each do |user_point| %>
    <td><%= user_point.question.name %></td>
<% end %>
...