Rails: вопрос скрепки относительно имен столбцов - PullRequest
3 голосов
/ 07 ноября 2010

У меня есть два сценария использования Paperclip, но я не уверен, как настроить параметры или если это возможно или даже необходимо. Нужен совет более опытных специалистов по этому вопросу.

Прежде всего, у меня есть модель документа для загрузки, например, PDF, которая будет определена:

has_attached_file :document...

Это даст мне имена столбцов, такие как @ document.document_file_name. В любом случае, вместо этого я мог бы иметь @ document.file_name?

Во-вторых, у меня есть Gallery.rb, в котором много Picture.rb. Тот же сценарий и здесь. Могу ли я избежать @ picture.picture_file_name? Или это то, что действительно следует упускать из виду благодаря достижениям, которые дает Скрепка.

Заранее спасибо за любой вклад.

Ответы [ 3 ]

3 голосов
/ 07 ноября 2010

Мой взгляд на это: документ фактический (файл PDF) не совпадает с записью документа (которая включает в себя физический документ плюс метаданные).Поэтому имеет смысл рассматривать вложение Paperclip как атрибут модели и вызывать его методы после атрибута, а не работать с самой записью модели.

В одном из моих приложений есть модель Documentс прикрепленным файлом, и я просто назвал атрибут attachment.

Если это слишком неудобно для вас, вы всегда можете реализовать свои собственные методы получения в модели:

class Document < ActiveRecord::Base
  has_attached_file :attachment    # ... or whatever you are calling it

  def file_name
    self.attachment.file_name
  end

  def file_size
    self.attachment.file_size
  end

  def file_type
    self.attachment.file_type
  end
end
1 голос
/ 07 ноября 2010

Камню Paperclip требуется три атрибута для связанного объекта.

  1. attribute_file_name
  2. attribute_file_size
  3. attribute_file_type

attribute конечно, если имя вашего файла и это has_attached_file :attribute поданное обычно называемое изображение, изображение, что угодно.

Если вы хотите изменить одно из этих имен, вам нужно будет отредактировать сам драгоценный камень, который кажется безумным просто для изменения имени атрибута:)

0 голосов
/ 04 мая 2012

Вот методы, которые мне пришлось создать:

{attribute}_file_name
{attribute}_file_size
{attribute}_content_type
{attribute}_updated_at
...