Je suis nouveau en rubis alors s'il vous plaît pardonner l'noobishness.Enregistrer les données des utilisateurs au fichier CSV
J'ai une classe « Utilisateur » qui ont des méthodes de créer et de montrer tous les utilisateurs doivent enregistrer « utilisateurs » des données dans le fichier CSV
C'est ce que j'ai essayé de faire
class User
attr_accessor :name, :age, :email
def initialize(name:, age:, email:)
@name = name
@age = age
@email = email
end
def create
@users = [@name, @age, @email]
end
def self.all
ObjectSpace.each_object(self).map(&:create)
end
def self.save_to_csv
CSV.open(users.csv, "w") do |csv|
@users.each { |i| csv.puts "#{i.name}, #{i.age}, #{i.email}" }
end
end
end
Quand j'appelle
User.all
il me retourne des tableaux dans le tableau de mes utilisateurs, mais lorsque l'appel
User.all.save_to_csv
il me montre une erreur
<main>': undefined method `save_to_csv' for [["user1"], ["user2"], etc]
S'il vous plaît, aider à la façon dont il est devrait faire correctement
Je pense que je devrais changer la méthode "all", mais je ne comprends pas comment le faire correctement –
Dans la méthode 'self.save_to_csv'' all.each 'fait référence à la méthode 'self.all' appliquant' chaque ', donc en appelant la méthode comme' User.all.save_to_csv', vous pouvez faire 'User.save_to_csv' sans méthodes de chaînage. –