Вы можете использовать метод eval()
, чтобы обойти ограничение голого слова:
eval "\$num=0b$str;";
Вы должны сказать «пользователь». поэтому Ruby знает, что вы хотите вызвать методы присвоения атрибутов экземпляра user. В противном случае вы просто устанавливаете локальные переменные с именем hashed_password и т. Д.
>> user.username = "John"; user.hashed_password = "John"; user.first_name = "John"; user.last_name = "coltrane"; user.email = "John@coltrane.com"; user.display_name = "Johndispay"; user.user_level = 9;
Хотя вы можете просто передать хэш атрибутов, которые хотите установить в новом экземпляре, например, так
>> user = User.new(:username => "John", :hashed_password => "John", ...
Это конечный; на вашем входе. Когда вы ставите ';' в конце IRB предположит, что вы хотите добавить еще один оператор. Если вы оставите его выключенным, он оценит все операторы и вернет значение, возвращаемое последним.
Иногда, если вызываемый мной метод будет возвращать большой массив, я сделаю что-то вроде этого ...
a = Account.entries; a.size
Это сохранит нужные мне значения и просто выведет размер массива вместо того, чтобы пытаться выгрузить его на консоль, что может занять много времени, если он большой.
вы уверены, что не имели в виду
user.username = "John"; user.hashed_password = "John";
я пробовал
>> a = 1; b= 2
=> 2
>> a
=> 1
>> b
=> 2
, когда что-то не работает, вы можете использовать одно правило: всегда сводите его к простейшему случаю.