Итак, я работаю над проектом ruby, где я хочу создать базу данных, содержащую информацию о имени пользователя и пароле, к которой можно получить доступ через массив. Вот мой код.Ruby имя пользователя и пароль базы данных
$ncounter = 1
$databaseArray = [["",""],["",""]]
class User
attr_accessor :username
attr_accessor :password
def initialize
puts "Welcome to the site!"
end
end
def createUser(username, password)
counter = $ncounter
counter = User.new
counter.username = username
$databaseArray[ncounter - 1][0] = username
counter.password = password
$databaseArray[ncounter - 1][1] = password
ncounter = ncounter + 1
end
createUser("Charlie", "1234")
Всякий раз, когда я запускаю его я получаю это в моей консоли
Welcome to the site!
user.rb:17:in `createUser': undefined local variable or method `ncounter' for
main:Object (NameError)
from user.rb:24:in `<main>'
не должны 'ncounter' быть' $ ncounter' или он должен быть 'counter'? Похоже, ошибка довольно чистая –
вы устанавливаете 'counter' глобальному объекту' $ ncounter', а затем сразу же перезаписываете его с помощью 'User.new'? Затем вы ссылаетесь на несуществующую локальную переменную 'ncounter' несколько раз (здесь ошибка). Поскольку все «Пользователи» будут храниться в этом массиве, '$ ncounter' кажется лишним, просто подсчитывая записи. Наконец, массив не является базой данных, и он будет перезагружаться каждый раз, когда приложение запускается. – engineersmnky