Я создал класс, который будет автоматически заполняться данными с помощью faker gem при создании экземпляра класса. У меня проблемы с заполнением объекта Person. Вероятно, это грубая синтаксическая ошибка.
require 'rubygems'
require 'faker'
class Person
attr_accessor :firstname , :lastname, :phonenumber, :workaddress, :bio, :email
def initialize(firstname = Faker::Name.first_name ,
lastname = Faker::Name.last_name,
phonenumber = Faker::PhoneNumber.phone_number,
workaddress = "#{Faker::Address.street_name},
#{Faker::Address.city}, #{Faker::Address.state_abbr}, #{Faker::Address.zip}",
bio = 'bla bla bla',
email = Faker::Internet.email)
end
end
Я запустил приведенный выше код в интерпретаторе Ruby, но мне не удалось инициализировать атрибуты Class. Следующее дает nillClass вместо String.
p = Person.new
puts p.firstname.class
Рабочее решение:
def initialize(firstname = Faker::Name.first_name ,lastname =Faker::Name.last_name,phonenumber = Faker::PhoneNumber.phone_number,workaddress = "# {Faker::Address.street_name}, #{Faker::Address.city}, #{Faker::Address.state_abbr}, #{Faker::Address.zip}",bio = "#{Lolem.new.words(7)}", email = Faker::Internet.email)
@firstname = firstname
@lastname = lastname
@phonenumber = phonenumber
@workaddress = workaddress
@bio = bio
@email = email
end