Проблема с созданием анонимного пользователя заключается в том, что вам нужно проверить, был ли комментарий «реальным» пользователем или анонимным при отображении имени, что создает сложность. Кроме того, если у вас есть способ просмотра страницы их профиля, которая может включать историю публикаций, вам нужно исключить анонимного пользователя за исключением.
Как правило, лучше иметь в комментариях столбец, представляющий видимое имя пользователя, и просто показать его, если он указан, или имя зарегистрированного пользователя в противном случае. Например, ваш помощник вида может выглядеть так:
class Comment < ActiveRecord::Base
belongs_to :user
def user_name
self.anonymous_name or (self.user and self.user.name) or 'Anonymous'
end
end
Это отобразит содержимое поля anonymous_name записи Comment, или имя пользователя, если пользователь назначен, или «Anonymous» в качестве последней попытки показать что-либо.
Иногда выгодно фактически нормализовать большую часть базы данных при работе с большим количеством комментариев, чтобы вам не приходилось загружать пользовательскую таблицу через объединение просто для отображения имени. Заполнение этого поля именем пользователя, даже если оно не является анонимным, может помочь в этом, хотя это означает, что эти значения необходимо обновлять при изменении имени пользователя, предполагая, что это даже возможно.