Disons que j'ai deux objets: Utilisateur et Course.Convertir un tableau de hachages en tableau de structs?
class User
attr_accessor :first_name
attr_accessor :last_name
end
class Race
attr_accessor :course
attr_accessor :start_time
attr_accessor :end_time
end
Maintenant, disons que je crée un tableau de hachages comme ceci:
user_races = races.map{ |race| {:user => race.user, :race => race} }
Comment puis convertir user_races dans un tableau de struct, en gardant à l'esprit que je veux être en mesure d'accéder à la attributs de l'utilisateur et de la course de l'élément struct? (L'élément clé est que je veux créer un nouvel objet via Struct afin que je puisse accéder aux attributs combinés de l'utilisateur et de la course.Par exemple, UserRace.name, UserRace.start_time.)
Si j'essaie de mettre cela comme une méthode dans la classe d'utilisateur, comme def self.fastest_time_record_holders courses = Race.by_fastest_time UserRace = Struct.new (: prenom,: last_name,: cours,: START_TIME: end_time) user_races = races.map faire | r | UserRace.new (nom_utilisateur_utilisateur, nom_utilisateur.nom_utilisateur, r.course, temps_de_r.arrivée, heure_finale) fin fin Je reçois une erreur de constante dynamique. Qu'est-ce que je dois faire? – keruilin
Vous ne pouvez pas redéfinir la structure dans votre méthode. Mettez la définition de la structure à l'extérieur du corps de la méthode. J'ai mis à jour ma réponse, jetez un oeil –