Как получить доступ к полям из другой модели через отношение has_many? - PullRequest
0 голосов
/ 23 августа 2010

Я сейчас использую:

@user = User.find(params[:id])
@posts = @user.posts
@comments = @user.comments

Для отображения всех моих комментариев с этим кодом в моем шаблоне:

<% @user.comments.each do |p| %>
  <p>Commented on <%= p.post.user_id %>'s post</p>
  <p><%= p.body %></p>
<% end %>

В каждом сообщении есть столбец user_id, который является идентификатором пользователя, для которого он был создан. Я могу вывести эти данные 'user_id', поскольку модель Post и User has_many: comments, а модель Comment_ принадлежит и модели Post, и модели User.

Я хочу использовать данные 'user_id' из p.post.user_id, чтобы найти имя пользователя из таблицы базы данных пользователей. Имя пользователя находится в столбце «имя», а идентификатор пользователя находится в столбце «идентификатор». Как использовать p.post.user_id в контроллере пользователя, чтобы затем найти пользователя с таким же идентификатором, чтобы я мог затем вывести его имя?

1 Ответ

1 голос
/ 23 августа 2010

Если у вас есть belongs_to и has_many, у вас будет доступ ко всему объекту User из объекта Post:

<%= p.post.user.name %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...