ruby - 在 Ruby 中将对象转换为哈希
问题描述
在 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"}
解决方案
我会to_h
在类中添加一个方法GameTeam
:
class GameTeam
# existing code
def to_h
{ game_id: @game_id, team_id: @team_id, hoa: @hoa, result: @result }
end
end
然后会像这样调用该方法:
@@game_teams.each do |game_team|
game_team.to_h
end
推荐阅读
- laravel - Route:list 在本地机器上工作,但在 laravel 的服务器上出错
- java - 为什么文件没有写入内部存储?
- karate - 如何检查在回归下运行的所有功能文件的报告?
- ssl - 使用 JDBC 瘦客户端通过 SSL 连接到 Ignite 集群
- ms-access - 当 MS-Access 窗体上的另一个组合框的值被修改时,如何更新该窗体上的组合框?
- mysql - DB Schema 设计 Parent Children 孙子
- haskell - 将 Data.ByteString.Lazy 转换为 CStringLen 的最有效方法
- lisp - 使用 Common LISP 运行爬山搜索的问题
- python - 如何在不使用线程/后台作业的情况下同时使服务器端循环无休止和非阻塞?
- android - 带有过滤器的 Recyclerview 中的 Firestore 一次性获取与实时侦听器