首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何遍历条件以将新值分配给不同的属性?

如何遍历条件以将新值分配给不同的属性?
EN

Stack Overflow用户
提问于 2013-03-05 05:42:01
回答 2查看 60关注 0票数 1

我尝试使用: unit_type属性中的文本在一个新的散列数组中分配一个名称。

这是我的数据

代码语言:javascript
复制
class Unit
  attr_accessor :name
  attr_accessor :imported_id
  attr_accessor :country
  attr_accessor :unit_type

  raw_stuff = [{:old_id=>576, :name=>"16th Armored Division (USA) "}, {:old_id=>578, :name=>"20th Armored Division (USA)"}, {:old_id=>759, :name=>"27th Armoured Brigade (UK)"}, {:old_id=>760, :name=>"- 13th/18th Royal Hussars"}, {:old_id=>761, :name=>"- East Riding of Yorkshire Yeomanry "}, {:old_id=>762, :name=>"- Staffordshire Yeomanry "}, {:old_id=>769, :name=>"A I R B O R N E "}, {:old_id=>594, :name=>"1st Airborne Division (UK)"}, {:old_id=>421, :name=>"6th Airborne Division (UK)"}]

  units = []

  raw_stuff.each do |unit_hash|
   u = Unit.new
   u.name = unit_hash[:name].sub("-","").lstrip
   u.unit_type = unit_hash[:name].scan("Division")
   puts u.unit_type
   puts u.name
  end

end

这会适当地将"division“指定为unit_type。然而,我似乎不能指定其他任何东西,例如"brigade“。我应该使用if或where条件吗?

代码语言:javascript
复制
When I use the following code:
  raw_stuff.each do |unit_hash|
   u = Unit.new
   u.name = unit_hash[:name].sub("-","").lstrip
      if unit_hash[:name].scan("Division")
        u.unit_type = "Division"
      elsif unit_hash[:name].scan("Brigade")
        u.unit_hash = "Brigade"
      else
        u.unit_hash = nil
      end
   puts u.unit_type
   puts u.name
  end

我最终被分派到每个单位。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-06 05:25:27

可爱的一句话:

代码语言:javascript
复制
u.unit_type = unit_hash[:name][/Division|Brigade/]

代码中的错误是,当scan没有找到任何东西时,它会返回一个空数组([]),并且空数组是“真实的”。您正在寻找的方法是include?,我的解决方案通过直接将字符串搜索结果(可以是nil)赋给单位类型,完全绕过了条件。

票数 1
EN

Stack Overflow用户

发布于 2013-03-05 05:49:08

试试这个:

代码语言:javascript
复制
if unit_hash[:name].include?("Division")
    u.unit_type = "Division"
  elsif unit_hash[:name].include?("Brigade")
    u.unit_type = "Brigade"
  else
    u.unit_type = nil
  end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15211685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档