Я новичок в Rails и Ruby, и я работаю над системой elo за столом, который отслеживает игроков и их победы, потери и elo.Ошибка синтаксиса для проекта Rails
Сейчас я получаю сообщение об ошибке
app/models/player.rb:36: syntax error, unexpected keyword_end,
expecting end-of-input):
app/controllers/players_controller.rb:3:in `index'
Я обыскивал все мои файлы для отсутствующего закрытия Paren или кронштейна, но ничего не могу найти. Вот некоторые фрагменты моего кода:
PlayerController индекс
def index
@players_items = Player.all.sort{|y,x| x.get_elo() <=> y.get_elo()}
end
методы PlayerModel
def get_elo()
return self.elo
end
def update_weight()
var = wins.count + lose.count
if(var <= 6)
self.weight = 50
elsif(6 < var and var <= 15)
self.weight = 25
else
self.weight = 15
end
end
def update_elo(p2_elo, result)
p1_elo = self.elo
expected_score = 1/(1 + 10 ** ((p2_elo - p1_elo)/400))
self.elo += (self.weight * (result - expected_score)).round
end
Если кто-то может мне помочь, было бы весьма признателен.
EDIT: В соответствии с просьбой, вот строки 27-36 моей модели игрока класса
def win_percentage()
var = wins.count + lose.count
if(var == 0)
return 0.001
end
else
return ((wins.count * 6) - (lose.count * 4))
end
end
end
Это является недопустимым: 'ELSIF (6 <вар <= 15)' – lurker
Я исправил эту ошибку, но синтаксическая ошибка все еще происходит. Линией, выделенной под извлеченным источником, является @players_items = Player.all.sort {| y, x | x.get_elo() <=> y.get_elo()} –
Ошибка (которая имеет проблему с копией/вставкой, поскольку она имеет некоторую синтаксическую ошибку, дополнительный пароль) находится на строке 'player.rb' 36, но вы показываете только часть этот файл, поэтому мы не можем определить, какая строка - 36. Модель вызывается из контроллера, и ошибка также показывает это. Можете ли вы показать строки вокруг строки 36 в 'player.rb'? – lurker