为什么这个RABL节点返回nil?

时间:2014-06-07 15:03:27

标签: ruby-on-rails ruby rabl

node :transitType do |u|
    :Entry if u.type == 'HorseEntryTransit'
    :Exit  if u.type == 'HorseExitTransit'
end

我尝试了以下内容,此代码段返回true。

node :transitType do |u|
    u.type == 'HorseEntryTransit'
end

1 个答案:

答案 0 :(得分:2)

您可以改进代码块并避免测试两个条件(满足第一个条件时)。另外,假设不满足条件的情况。看起来,即使第一个条件为真,第二个条件失败时你也会得到nil

 node :transitType do |u|
     if u.type == 'HorseEntryTransit'
          :Entry 
     elsif u.type == 'HorseExitTransit'
          :Exit
     else
          nil #or :Neither
     end
end

当实际满足第一个条件时,您的代码不起作用,因为第二个条件仍将被测试,并且该条件的结果为nil