The ternary is generally a problem for readability. Ruby's particular style (like being able to return a value from an if-block) generally make the cases where they're useful obsolete.
In this case, if we cared about readability, we wouldn't use a ternary at all:
if @foo == :bar
:foo_matches
else
nil
end
Which simplifies down to the exact refactoring offered.
In Kent Beck's Smalltalk Patterns book he suggest that although every method returns "self" if you actually intend for that value to be used you should return it explicitly. I believe it's called the "Interesting Return Value Pattern' and I think the same applies here, the nil should be explicit.