jackerman09,
Как и многие вещи в Rails, есть несколько способов идти об этом. @phgrey указал, как исправить игроков и команды.
Что касается opponent_week_1, 2 и т.д .:
Я думаю, что лучший способ, если вы на самом деле сделать имеют has_may :opponent_week
ассоциацию от модели команды, как это:
class Team < ActiveRecord::Base
...
has_many :fields
...
end
Вы хотите затем необходимо ограничить ввод недельных оппонентов каждой команде только 5 через проверки и/или через формы. Поскольку пользователи будут вводить эти недели противников через формы, это будет простой способ сделать это сначала. У вас есть контроль над формами, поэтому просто ограничьте количество противников, которые они вкладывают для каждой команды через формы.
Как вы собираетесь их называть opponent_week_1
, opponent_week_2
и т. Д .: Есть несколько способов. Я попытался бы поместить в вашу модель метод method_missing
(google, чтобы узнать, как это сделать), затем проанализируйте имя метода, который вы назвали. Что-то вроде этого:
def method_missing(method_name)
if method_name.starts_with?("opponent_week_")
# get the number at the end, then call
opponent_weeks[ num_of_week - 1 ]
else
super
end
end
Все самое лучшее и дайте мне знать, если вам нужны разъяснения.