【发布时间】:2020-09-15 07:18:42
【问题描述】:
在 Ruby(没有 Rails)中,有没有一种简单的方法可以将对象转换为哈希?我已经做了一些搜索,并且类似的 Rails 解决方案让 OP 尝试使用 .attributes。在普通的 Ruby 中是否有类似的东西?有宝石吗?
这些对象中的每一个都代表我在此处创建的 CSV 文件中的一行:
game_teams_data = CSV.read(location[:game_teams], headers: true, header_converters: :symbol)
@@game_teams = game_teams_data.map do |row|
然后我以可枚举的形式访问此处的对象
@@game_teams.each do |game|
game
end
不确定这是否会对我如何进行下面的转换产生影响。
我的对象
#<GameTeam:0x00007ffe9c97d158 @game_id="2012030154", @team_id="30", @hoa="home", @result="LOSS">
我想要达到的输出
hash = {game_id => "2012030154", team_id => "30", hoa => "home", result => "LOSS"}
【问题讨论】:
-
CSV 中有哪些对象?我们需要查看一些 CSV 输入,以及正在生成的对象的内容。请参阅“MCVE”。
-
如果您只是学习 Ruby,请尽量远离类变量,例如
@@game_teams。而是使用@game_teams之类的实例变量,但在对象内部执行此操作,就像在实例方法中一样。