Rails3: разработайте пользовательские отношения has_one - PullRequest
0 голосов
/ 19 июня 2011

У меня есть модель пользователя, сгенерированная 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 должен захватывать команду у пользователя, в противном случае создается команда, которая может быть потенциально сохранена при регистрации.

Любое руководство по этому вопросу очень ценится!

...