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

Ruby on rails 为什么这个RABL节点返回nil?,ruby-on-rails,ruby,rabl,Ruby On Rails,Ruby,Rabl,我尝试了以下代码,该代码段返回true node :transitType do |u| :Entry if u.type == 'HorseEntryTransit' :Exit if u.type == 'HorseExitTransit' end 您可以改进代码块并避免测试两个条件(当满足第一个条件时)。另外,假设两个条件都不满足的情况。当第二个条件失败时,即使第一个条件为真,您也会得到nil node :transitType do |u| u.type ==

我尝试了以下代码,该代码段返回true

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

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

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

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

当您将行更改为simply
u.type
时会输出什么?当我将最后一行更改为u.type时,我会看到u.type的值(例如HorseExitTransit)。+1作为您的答案;谢谢我希望了解为什么我的代码不起作用。添加了一些关于为什么您的代码返回非常好的说明!这就是我需要的。非常感谢。
 node :transitType do |u|
     if u.type == 'HorseEntryTransit'
          :Entry 
     elsif u.type == 'HorseExitTransit'
          :Exit
     else
          nil #or :Neither
     end
end