在多个条件下使用 && 的 Ruby 语法错误



我很困惑为什么在组合两个条件时出现语法错误,而这两个条件在程序可以继续之前应该是真的。我是 ruby 的新手,还没有机会自己编写一个完整的程序。 我只是在更新一个旧程序,并遵循与我需要更新它类似的任何代码。

这是我的代码:

def drug_dispensation_condition(charge)
return true if ['250','251'].include? charge[:rev_code]
return true if ['981262'].include? charge[:cdm_code]
return true if ['300'].include? charge[:rev_code] && ['86580'].include? charge[:cdm_code]  #this line is inserted
false
end

这是我的错误消息:

语法错误,意外的 tIDENTIFIER,预期keyword_end (语法错误(...e] && ['86580'].include?充电[:cdm_code]

我添加了第三个"return true"子句,以包括rev_code 300和cdm_code 86580。 我需要 rev_code 300 和 cdm_code 86580 将语句声明为 True,因此我需要在它们之间添加"&&"。看起来它期待"charge[:rev_code]"之后的"结束"而不是第二个条件。

有没有其他方法可以对此进行编码以避免语法错误?

由于它是单行语句,因此将包含括起来? 括号中的参数:

return true if ['300'].include?(charge[:rev_code]) && ['86580'].include?(charge[:cdm_code])

我认为你可以让它更具可读性:

def drug_dispensation_condition(charge)
if ['250', '251', '300'].include?(charge[:rev_code]) ||
['981262', '86580'].include?(charge[:cdm_code])
return true
end
false
end

最新更新