这段代码有更漂亮的版本吗?

@available_option_types.delete_if {|ot|
  result = true
  result = current_user.retailer.id != ot.retailer.id if ot.retailer.present?
  result
} unless current_user.has_role? 'admin'

谢谢您!

最佳答案

@available_option_types.delete_if { |ot|
  ot.retailer.present? ? (current_user.retailer.id != ot.retailer.id) : true
} unless current_user.has_role? 'admin'

或者,如果你在模型中加入一些逻辑,它会更漂亮:
class User
  def same_retailer_with?(option_type)
    option_type.retailer.present? ? (self.retailer.id != option_type.retailer.id) : true
  end
end

@available_option_types.delete_if { |ot| current_user.same_retailer_with?(ot) } unless current_user.has_role? 'admin'

关于ruby - Ruby中的更漂亮的代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6586631/

10-11 09:21