This reads really badly now. I suggest set the message to an instance variable and wrap the whole thing in a normal conditional block for clarity, something like:

```ruby
  type = NewsArticleType.find_by_slug(slug) || SPECIAL_CASES[slug]
  if type
    error_message = "Unable to find News article type with slug '#{slug}'\ntry one of (#{NewsArticleType.all_slugs})"
    logger.error(error_message, line_number)
  end
```

Or at the very least use parentheses on the `logger.error` call so it's clearer where the parameters end and the `unless` begins.