Проверка модели не распознается. Макс. Количество игроков в команде. - PullRequest
1 голос
/ 05 февраля 2012

Итак, у меня есть команда по софтболу и игроки в этой команде. Я хочу, чтобы вы могли добавить в команду только определенное количество игроков (максимум 3). В моем файле team.rb у меня есть:

has_many :players
validates :team, :length => {:maximum => 3}

Приложение не выходит из строя, но оно также не распознает ограничение на 3 игрока.

Любой вклад будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 06 февраля 2012

Понял, не уверен, есть ли более простой способ сделать это.Пришлось сделать собственный валидатор модели

validate :maxplayers

def maxplayers
    unless team.players.count < 3
    errors.add(:base, "You have reached team capacity")
  end
end

Обратите внимание, что это в player.rb, и по некоторым причинам error.add_to_base не будет работать.Также обратите внимание, что это подтверждает, а не проверяет.

0 голосов
/ 05 февраля 2012

То, что вы пытаетесь сделать (если я правильно понял!), Это избежать того, чтобы более 3 игроков были связаны с командой, но это не то, что вы написали.

Валидаторы длины проверяют длину поля, поэтому, например, если у вас есть модель Player с полем имени, вы можете задать максимальную длину имени следующим образом:

# In the Player model
validates :name, :length => {:maximum => 30}

То, что вы хотите сделать, сложнее, вы должны проверить, что в БД для каждой команды есть максимум 3 игрока, вероятно, вы должны использовать ловушки для моделей ... (Я тоже новичок!)

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