Рубин на Рельсах и Скрепке - PullRequest
0 голосов
/ 21 января 2011

У меня есть полиморфная модель вложений для сохранения изображений, загруженных пользователями.Пользователи могут устанавливать любые свои собственные в качестве картинки профиля.

Для этого я создал столбец "avatar_id" в базе данных пользователей, чтобы в основном сохранить идентификатор вложения для создания ссылки.Я также добавил действие аватара в модель User:

def avatar 
  self.attachments.first(:conditions => ['id = ?', self.avatar_id])
end

Проблема в том, что если я попытаюсь сделать эту работу

<%= @user.avatar.url %>

Это не сработает, потому что метод URLне существуетМне нужно указать, что это объект скрепки, но я не понимаю, где и как я должен это сделать.Я, наверное, что-то здесь упускаю, очевидно.

1 Ответ

2 голосов
/ 21 января 2011

Ваша модель Attachment должна иметь набор полей прикрепления: возможно attachment_file_name, attachment_content_size и т. Д.

Так что, когда вы ссылаетесь на @user.avatar, вы действительно просто ссылаетесь на весь Attachment запись, а не столбцы, специфичные для скрепки.

Попробуйте это, заменив «вложением» то, что вы называете столбцами скрепки:

<%= @user.avatar.attachment.url %>
...