在Ruby中如何在一个保护子句中放置多行?

时间:2015-06-23 01:22:20

标签: ruby-on-rails ruby

我有以下代码行:

if params[:"available_#{district.id}"] == 'true'
    @deliverycharge = @product.deliverycharges.create!(districtrate_id: district.id)
    delivery_custom_price(district)
end

Rubocop突出显示它并要求我使用一个保护条款。我该怎么办?

编辑:Rubocop突出显示第一行并发出此消息Use a guard clause instead of wrapping the code inside a conditional expression

1 个答案:

答案 0 :(得分:10)

不知道周围的代码是什么样的,所以让我们假设你的代码是方法的整个主体。然后一个保护条款可能如下所示:

def some_method
  return if params[:"available_#{district.id}"] != 'true'   #guard clause

  @deliverycharge = @product.deliverycharges.create!(districtrate_id: district.id)
  delivery_custom_price(district)
end