gsg*_*uby 0 ruby hash rubygems
在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|
Run Code Online (Sandbox Code Playgroud)
然后我以可枚举的方式访问这里的对象
@@game_teams.each do |game|
game
end
Run Code Online (Sandbox Code Playgroud)
不确定这是否会对我如何进行下面的转换产生影响。
我的对象
#<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
Run Code Online (Sandbox Code Playgroud)
然后会像这样调用该方法:
@@game_teams.each do |game_team|
game_team.to_h
end
Run Code Online (Sandbox Code Playgroud)