У меня есть модель пользователя, сгенерированная Devise, которая имеет команду Team.Я пытаюсь выполнить 3 вещи: 1. Разрешить людям, которые не зарегистрированы или не вошли в систему, создать Команду 2. Передать эту команду во время регистрации, чтобы связать Пользователя с Командой 3. Вызывать эту Команду всякий раз, когда Пользователь входит в систему.
Вот что у меня сейчас есть:
Team.rb
has_many :members, :dependent => :destroy
belongs_to :user
User.rb
has_one :team
attr_accessible #devise stuff, :team
accepts_nested_attributes_for :team
Я создал и перенес столбец: user_id для таблицы Team.
Одна часть моего кода была основана на работе через Agile Web Dvpt.4-е изд.что оставило мне следующее для поиска моей команды:
ApplicationsController
def current_team
Team.find(session[:team_id])
rescue ActiveRecord::RecordNotFound
team = Team.create
session[:team_id] = team.id
team
end
Я попытался использовать этот метод, чтобы найти нужную мне функциональность, но этоя чувствовал, что это не подходящее место для таких вещей.
Посредством поиска в stackoverflow, кажется, есть ряд различных предложений.Я пробовал некоторые из них безрезультатно, и хотел бы уточнить, каков правильный путь вперед.Я чувствую, что я должен переопределить Devise RegistrationsController своим собственным, чтобы создать Команду вместе с Пользователем.Если user_signed_in?, Метод current_team должен захватывать команду у пользователя, в противном случае создается команда, которая может быть потенциально сохранена при регистрации.
Любое руководство по этому вопросу очень ценится!