Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 引爆装置数据帧上的If语句_Ruby_Squib - Fatal编程技术网

Ruby 引爆装置数据帧上的If语句

Ruby 引爆装置数据帧上的If语句,ruby,squib,Ruby,Squib,使用生成卡片 我的csv布局非常简单。其中一个字段可能为空-“”,根据该字段,我必须调用各种函数。我怎样才能真正做到这一点 一直在尝试像data['empty_field'].empty?这样的选项,这会给我带来一些奇怪的东西——总是认为它不是空的。我假设通过这种方式得到“empty_field”对象数组,当然,它不是空的。但我如何获得引爆装置当前正在迭代的对象呢?我已经实现了我想要的。但我认为这是肮脏的黑客,而不是解决方案。 我必须编辑我的C#工具以发出power字段的空字符串,其中type3

使用生成卡片

我的csv布局非常简单。其中一个字段可能为空-“”,根据该字段,我必须调用各种函数。我怎样才能真正做到这一点


一直在尝试像
data['empty_field'].empty?
这样的选项,这会给我带来一些奇怪的东西——总是认为它不是空的。我假设通过这种方式得到“empty_field”对象数组,当然,它不是空的。但我如何获得引爆装置当前正在迭代的对象呢?

我已经实现了我想要的。但我认为这是肮脏的黑客,而不是解决方案。 我必须编辑我的C#工具以发出
power
字段的空字符串,其中
type3
字段将为空。通过这种方式,我在Ruby代码中去掉了if/else,它按预期工作

然而,问题仍然存在,我不能把我的头围绕Ruby

附上我的最新尝试

  pr = dataNor['type3'].map do |a| 
    a == 'data/ui/type3/placeholder.png' ? true : false
  end

  if pr == true
    text str: dataNor['power'], x: '5.5mm', y: '6.5mm', font_size: 25, color: :white, align: :center, valign: :middle, width: '10mm', height: '10mm', font: 'Warnock Pro SmBd Caption'
  else
    png file: dataNor['type3']    
  end
通过打印
pr
我知道检查正在工作,只在定义了
type3
的地方导致false,但是
if/else
永远不会调用if body,只在应该调用的地方调用else body

更新:

这个问题似乎已经被这个结构解决了:

dataNor['type3'].map do |a| 
    if a == 'data/ui/type3/placeholder.png' 
      text str: dataNor['power'], x: '5.5mm', y: '6.5mm', font_size: 25, color: clr, align: :center, valign: :middle, width: '10mm', height: '10mm', font: 'Warnock Pro SmBd Caption'
    else
      png file: dataNor['type3']
    end
  end

“给我一些奇怪的东西”是一个简洁的故事,但是对于一个技术性的回答,请包括你得到的准确的错误文本。它不会产生任何错误,什么是奇怪的-我已经在你引用的问题后面加上了这个问题。“如果”从来没有发生过,你能给我们一些代码来重现这个问题吗?像
数据
看起来像什么?
数据['empty_field']
包含什么<代码>检查通常可以告诉您。如果它有空格,它可能不会被认为是“空的”,只是空白。在Rails中,您有
.present?
.blank?
,但否则您可能需要执行
数据['empty齌field']和.match(/\S/)
来查找至少一个非空格字符。
标题、描述、图片、派系、电源、类型1、类型2、类型3、底部的“bаааааажаааа”,data/textures/nor\u vernon.png,data/ui/ribbon/nor\u tape.png,10,data/ui/type1/melee.png,data/ui/type2/type\u hero.png,data/ui/bottom/bottom\u hero.png
这是从csv文件加载到DataFrame变量
data
的典型示例。
'empty_field'
在标题中是type3,在包含的示例中是emptySo,所以应该是空字符串,但您能确认吗?像零宽度空格和其他Excel垃圾之类的鬼鬼祟祟的东西会把事情搞砸。您可以使用
str.bytes
转储字符串,以了解其实际包含的内容。您不需要将布尔值转换为带三元的布尔值,比较
=
就可以了。同样地,
如果pr
就足够了。我已经按照您的建议编辑了它,现在,
如果在应该调用body时调用了它,但是
否则
body不是。我可能遗漏了Ruby的一些内容,第一次使用itRemember
map
总是会返回一个数组,所以如果您想查看是否没有匹配项,
.any?
空?
。我想你想要的不是一系列
true
false
实体,这是
map
所做的,而是
dataNor['type3']。有吗?{a | a='.'''}
就我所理解的
#any
做什么-不。
dataNor['type3'].map do | a |
做它似乎做的事情。它给出了当前迭代csv行中的字段。我使用相同的结构切换文本的颜色,效果很好。然而,这里并不是说
map
将返回像
[true,false,true,…]
这样的数组,它永远不会
==true
,因此
if
将无法按预期工作。您需要
any吗?