Показать команды, в которых участвует пользователь - PullRequest
0 голосов
/ 23 октября 2018

Как я могу показать, в каких командах участвует пользователь?

Моя домашняя страница для зарегистрированных пользователей:

<div class="container">
    <h1 class="display-3">Your Teams</h1>
    <p></p>
</div>

Моя модель user.rb:

class User < ApplicationRecord
  has_many :memberships
  has_many :teams, through: :memberships
  devise :database_authenticatable, :registerable, :confirmable,
         :recoverable, :rememberable, :validatable

end

Модель моей team.rb:

class Group < ApplicationRecord
  has_many :memberships
  has_many :users, through: :memberships
  validates_uniqueness_of :name
end

Модель моего членства.rb:

class Membership < ApplicationRecord
  belongs_to :user
  belongs_to :team
end

1 Ответ

0 голосов
/ 23 октября 2018

Вы должны иметь доступ к ним, используя .groups в экземпляре User.Учитывая экземпляр @my_user, инициализированный в контроллере, при написании этого кода в HTML должно быть напечатано много тегов <h2>, по одному для каждой группы:

(Предположим, у вас есть строковое свойство name в вашем Group class)

<% @my_user.groups.each do |group| %>
  <h2><%= group.name %></h2>
<% end %>

Ключевое слово has_many в вашем классе User делает всю магию, вы уже говорите классу, чтобы получить группы through :memberships.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...