select_list 当给定值不为空时应该

select_list should when the given value is not empty

我写了下面的代码

b.select_list(:id,'something').select(a['value']) unless a['value].empty?

现在我需要为许多 select select 框编写相同的代码,以避免 unless a['value'].empty?

我在 class SelectList

中包含了函数 selectIfnotempty?(item)
def selectIfnotempty?(item)
    return item.empty?
    select item
end

def select(item)        
      matching_options = []
      perform_action do
        matching_options =
...
...
...
end

但是它通过说

来抛出错误
"undefined method `selectIfnotempty' for #<Watir::SelectList:0x132d2438>"

谁能告诉我为什么会这样?

您已将方法定义为 selectIfnotempty?,但将其调用为 selectIfnotempty(缺少问号)。

方法本身总是return一个布尔值(item.empty?的结果)。我想你的意思是 return 早 只有 如果 item 是空的。

def selectIfnotempty?(item)
    return if item.empty?
    select item
end

吹毛求疵:在 ruby 中,惯例是使用 snake_case 作为方法名称。