Niestety, delegate przyjmuje jedynie opcje :to, :allow_nil oraz :prefix (ta metoda może delegować więcej niż 1 pole, więc ciężko byłoby tu dodać ustawianie nazwy). Jedyne co pozostaje to napisać metodę
Zadziwia mnie, po co ludzie używają tyle kodu, zamiast napisać, to co wcześniej pokazał Arnvald: def reader; user.name; end - ta funkcja jest nawet krótsza od wywołania samej metody def_delegator :user, :name, :reader. Warto? Co z KISS?
Tak jak napisałem powyżej, pomyliłem się, więc masz rację, nie ma chyba żadnego powodu, dla którego delegator będzie lepszy.
Co do samego tematu jeszcze, to dla mnie samo pytanie jest źle postawione. Post#reader sugerowałby dla mnie zwrócenie obiektu. Już wolałbym tak jak ktoś sugerował asocjację nazwać reader, a to co l0pez chce uzyskać nazwałby Post#reader_name