Рельсовые ассоциации и MVC - PullRequest
0 голосов
/ 30 июня 2011

в моем приложении Rails у меня есть модель User и модель Team, связанные через модель User_Team.

Я пытаюсь попросить Rails проверить и создать нового пользователя, только еслипараметры, используемые для его создания, поставляются с действительным параметром team_code.

В основном мне нужно:

  1. проверить таблицу команд
  2. посмотреть, есть ли команда с предоставленным кодом командысуществует
  3. только в этом случае разрешить создание пользователя
  4. связать пользователя с командой

Какой лучший способ сделать это?Где я должен поставить логику?В контроллере?В модели проверки пользователя?

Даже несколько советов было бы полезно!

ОБНОВЛЕНИЕ # 1 Team_code является атрибутом модели Team.Команды создаются ранее (не во время создания пользователя).Мне нужно, чтобы у каждого пользователя - для создания - была существующая команда для входа во время создания пользователя.

Спасибо, Августо

1 Ответ

1 голос
/ 30 июня 2011

Логика проверки принадлежит модели. Вот как я это сделаю:

class User
  belongs_to :team
  attr_accessor :team_code
  def team_code
    @team_code ? @team_code : (team ? team.team_code : nil)
  end
  def team_code= (value)
    @team_code = value
    self.team  = Team.where('team_code = ?', value).first
  end
  validates_presence_of :team
  validates_each :team_code do |record, attr, value|
    record.errors.add attr, 'does not exist' if !value.blank? && !team
  end
end
...