Это удобнее читалось бы в одну строчку:
```ruby
redirect_to root_url unless current_user && current_user.merchant == current_merchant
```
Кстати, если не уверен, что `current_user` существует, то можно использовать метод-обертку `try(:your-method)`. Пример:
```ruby
[14] pry(main)> %w(1 2 3).join
=> "123"
[15] pry(main)> %w(1 2 3).try(:join)
=> "123"
[16] pry(main)> nil.join
NoMethodError: undefined method `join' for nil:NilClass
from (pry):16:in `<main>'
[17] pry(main)> nil.try(:join)
=> nil
```
Тогда твой метод превращается в
```ruby
redirect_to root_url unless current_user.try(:merchant) == current_merchant
```
Заодно можно избавиться и от `unless`
```ruby
redirect_to root_url if current_user.try(:merchant) != current_merchant
```