Я думаю, что мне не хватает чего-то очень очевидного, и это делает мой мозг больным.Rails найдено на нескольких моделях
class User < ActiveRecord::Base
has_one :profile
class Profile < ActiveRecord::Base
has_one :user
belongs_to :team
У меня есть частичный, который перебирает пользователь и напечатать некоторые основные данные, я использую это частичный в моей команде шоу страницы.
Я изначально написал это, чтобы возвращать пользователей, чьи профили были членами команды.
def show
@team = Team.find_by_id(params[:id])
@profiles= Profile.find(:all, :conditions => ['team_id = ?', @team.id])
@users = User.find_by_id(@profiles.user_id)
end
Но быстро реализованный @profiles был массивом, и он выглядит грязным, как ад. Застрял в отношении того, что моя находка должна выглядеть так, чтобы выбрать всех пользователей, у которых есть профиль, являющийся членом команды.
Парциальные, который работает в другом месте для отображения пользователей выглядит как этот журнал выход
<% for user in @users%>
<table>
<tr>
<td>
<%= image_tag user.profile.picture.url %>
</td>
<td>
<a href="https://stackoverflow.com/users/<%= user.id %>"><%= user.login %></a>
</td>
<td>
<%= user.profile.first_name %> <%= user.profile.second_name %>
</td>
<td>
<%= user.profile.status %>
</td>
</tr>
</table>
<% end %>
развития с обновленным шоу и отношениями
Processing TeamsController#show (for 127.0.0.1 at 2010-03-30 22:06:31) [GET]
Parameters: {"id"=>"1"}
User Load (1.3ms) SELECT * FROM "users" WHERE ("users"."id" = 3) LIMIT 1
Team Load (1.0ms) SELECT * FROM "teams" WHERE ("teams"."id" = 1)
Rendering template within layouts/main
Rendering teams/show
Completed in 75ms (View: 11, DB: 2) | 200 OK [http://localhost/teams/1]
Он, кажется, не правильно выбирает пользователей, хотя кажется, что имеет смысл, когда я работал над ним на бумаге. Добавлен журнал и частичный – Kelvin
KGB Убедитесь, что все ваши ассоциации установлены правильно? Пока ваши пользователи связаны с вашей командой, они должны работать. Я добавлю, как выглядит ваша структура таблицы. –
К сожалению, я также забыл добавить объявление belongs_to в рамках модели User. Это может также вызвать проблемы. :) Сообщение отредактировано, чтобы отразить. –