Tag: 哈希

合并基于ruby中特定键/值对的哈希值

我试图基于特定的键/值对合并散列数组。 array = [ {:id => ‘1’, :value => ‘2’}, {:id => ‘1’, :value => ‘5’} ] 我希望输出 {:id => ‘1’, :value => ‘7’} 正如patru所说,在sql术语中,这相当于: SELECT SUM(value) FROM Hashes GROUP BY id 换句话说,我有一个包含记录的哈希数组。 我想获得特定字段的总和,但总和将按键/值对分组。 换句话说,如果我的选择标准是:id,如上例所示,则它会将哈希值分成id为相同的组和其他键的总和。 对于由于之前的错字引起的任何混淆,我道歉。

Rails:使用OmniAuth(FB授权),从Facebook Hash读取数据

使用OmniAuth,我成功从Facebook获取哈希数据:存储在“auth”中 # extra=#] last_name=”Jordan” link=”http://www.facebook.com/michael” locale=”en_US” middle_name=”Ball” name=”Michael Jordan” quotes=”\”lalala\”\n\n\”lala\”” timezone=9 updated_time=”2011-09-01T20:25:58+0000″ username=”mjordan82″ verified=true>> info=# verified=true> provider=”facebook” uid=”123456879″> 在用户模型中,我执行如下操作: def self.create_with_omniauth(auth) create! do |user| user.provider = auth[“provider”] user.uid = auth[“uid”] user.name = auth[“name”] end end 当我检查数据库时,我只有提供者和uid。 User.name行为空。 从测试中,我发现我无法存储除提供者和uid之外的其他数据。 例如,user.name = auth [“provider”]或user.name = auth [“uid”]存储没有问题,但是当我尝试类似user.name = auth [“timezone”]或user.name =时auth [“last_name”],没有任何内容存储在变量中。 有人知道怎么修这个东西吗? 我也试过user.name = auth [“user_info”] […]

如何使用符号键将Object转换为哈希数组

我在尝试: Product.first.attributes.map{|k, v| “#{k.to_sym} => #{v}”} 但是,我收到如下输出: [“id => 53”, “name = blah”], [“id => 54”, “name = blahblah”] 我想要的是: [{:id=>53,:name=>”blah”}, {:id=>54,:name=>”blahblah”}]

优雅地从任意深度哈希中提取所有字符串

我的目标是确定散列中是否有空白,如下所示: {“departure_time_slots”=>{“date”=>[“”], “time”=>{“start”=>[“”], “end”=>[“”]}}} 字符串是嵌套的任意时间。 我不想手动检查每一个。 如果我可以提取所有字符串而不管它们的深度如何都会很好。 有一个简单的方法吗?

Ruby on Rails – Hash of Arrays,group by和sum by many columns

我有一个类似的问题,这个主题Ruby on Rails – Hash of Arrays,group by和sum by column name 但是,我的问题是group by和sum by with many columns而不是one。 例如:我的哈希 [ {“idx”=>”1234”, “account”=>”abde”, “money”=>”4.00”, “money1″=>”1.00”, “order”=>”00001”, “order1″=>”1”}, {“idx”=>”1235”, “account”=>”abde”, “money”=>”2.00”, “money1″=>”1.00”, “order”=>”00001”, “order1″=>”1”}, {“idx”=>”1235”, “account”=>”abde”, “money”=>”3.00”, “money1″=>”1.00”, “order”=>”00002”, “order1″=>”2”} ] 结果是这样的 [ {“idx”=>”1234”, “account”=>”abde”, “money”=>”6.00”, “money1″=>”2.00″,”order”=>”00001”, “order1″=>”1”}, {“idx”=>”1234”, “account”=>”abde”, “money”=>”3.00”, “money1″=>”1.00″,”order”=>”00002”, “order1″=>”2”} ] 像这样的group_hashes arr, [“order”,”order1″], [“money”,”money1″] […]

基于排序值数组对哈希数组进行排序

我有一系列哈希,如下所示: user_quizzes = [{:id => 3897, :quiz_id => 1793, :user_id => 252}, {:id => 3897, :quiz_id => 1793, :user_id => 475}, {:id => 3897, :quiz_id => 1793, :user_id => 880}, {:id => 3897, :quiz_id => 1793, :user_id => 881}, {:id => 3897, :quiz_id => 1793, :user_id => 882}, {:id => 3897, :quiz_id => 1793, :user_id […]

如何在rails中的视图中检索哈希值

我在控制器中有一个动作: def user_detail @user_detail = UserDetail.find_by_id(11) end 在视图中: // displays me like # 我试图检索@user_detail的内容:实际上哈希包含{:empid=>”11111″, :prjtname=>”aaaaa”, :prjtrole=>”Developer”} 如何显示用户详细信息的empid和其他值?

在Rails中搜索嵌套哈希中的键

我在一个名为myAuth的对象中捕获了以下嵌套哈希(来自Ominauth-Facebook) <Ominauth::AuthHash credentials extra=#<Hashie:: Mash raw_info=#>> 我想提取电子邮件,所以我使用: myAuth[‘extra’][‘raw_info’][’email’] 但是,我想搜索整个哈希并获取关键email的值,而不知道确切的哈希结构。 我该怎么办呢? 谢谢。

在使用from_xml转换为哈希时,如何使用XML属性?

我有一个XML元素,其中包含多个使用相同ID的子元素。 子元素可通过“ size ”属性区分。 当我使用from_xml创建一个哈希时,它会将所有这些子元素1字段from_xml 。 如何根据XML属性将这些子元素解析到不同的字段? XML: KISS http://userserve-ak.last.fm/serve/34/3329738.jpg http://userserve-ak.last.fm/serve/64/3329738.jpg http://userserve-ak.last.fm/serve/126/3329738.jpg http://userserve-ak.last.fm/serve/252/3329738.jpg http://userserve-ak.last.fm/serve/500/3329738/KISS+04.jpg ruby: >>xml = “KISShttp://userserve-ak.last.fm/serve/34/3329738.jpghttp://userserve-ak.last.fm/serve/64/3329738.jpghttp://userserve-ak.last.fm/serve/126/3329738.jpghttp://userserve-ak.last.fm/serve/252/3329738.jpghttp://userserve-ak.last.fm/serve/500/3329738/KISS+04.jpg” => “KISShttp://userserve-ak.last.fm/serve/34/3329738.jpghttp://userserve-ak.last.fm/serve/64/3329738.jpghttp://userserve-ak.last.fm/serve/126/3329738.jpghttp://userserve-ak.last.fm/serve/252/3329738.jpghttp://userserve-ak.last.fm/serve/500/3329738/KISS+04.jpg” >>h = Hash.from_xml xml => {“artist”=>{“name”=>”KISS”, “rank”=>”48”, “image”=>[“http://sofzh.miximages.com/ruby-on-rails/3329738.jpg”, “http://sofzh.miximages.com/ruby-on-rails/3329738.jpg”, “http://sofzh.miximages.com/ruby-on-rails/3329738.jpg”, “http://sofzh.miximages.com/ruby-on-rails/3329738.jpg”, “http://sofzh.miximages.com/ruby-on-rails/KISS+04.jpg”]}} 我想要的是: => {“artist”=>{“name”=>”KISS”, “rank”=>”48”, “image_small”=>”http://sofzh.miximages.com/ruby-on-rails/3329738.jpg”, “image_medium”=”http://sofzh.miximages.com/ruby-on-rails/3329738.jpg”, “image_large”=”http://sofzh.miximages.com/ruby-on-rails/3329738.jpg”, “image_extralarge”=”http://sofzh.miximages.com/ruby-on-rails/3329738.jpg”, image_mega”=”http://sofzh.miximages.com/ruby-on-rails/KISS+04.jpg”}}

在表单中编辑序列化哈希?

我正在序列化存储在表中的settings字段中的哈希,并希望能够在表单字段中编辑该哈希。 class Template < ActiveRecord::Base serialize :settings end 但我只是做然后文本区域只显示序列化数据而不是哈希值。 如何在文本区域中显示哈希值?