代码之家  ›  专栏  ›  技术社区  ›  MartinElvar

如何在exmachina工厂中使用arc EXTO文件?

  •  2
  • MartinElvar  · 技术社区  · 8 年前

    我有一个Ecto模式,它使用arc上传器作为字段类型。

      schema "files" do
        field :name, :string
        field :locked, :boolean, default: false
        field :mime_type, :string
        field :path, Splish.Assets.FilesUploader.Type
        field :size, :integer
        belongs_to :user, Splish.Accounts.User
    
        timestamps()
      end
    

    我想为此添加一个exmachina工厂

      def file_factory do
        %File{
          name: "Gyldendal",
          locked: false,
          mime_type: "png",
          size: 200,
          # path: "test/support/image.png",
          user: insert(:user)
        }
      end
    

    1 回复  |  直到 8 年前
        1
  •  3
  •   TheAnh    8 年前

    从…起 Arc Basic Usage

    要么:

    • 本地文件的路径
    • 带有文件名和二进制键的映射(例如,%{filename:“image.png”,二进制:<255255255,…>})

    我会这样做:

    @file_upload %Plug.Upload{
        content_type: "image/png",
        filename: "image.png",
        path: "test/support/image.png" }
    
    
     def file_factory do
      %File{
        name: "Gyldendal",
        locked: false,
        mime_type: "png",
        size: 200,
        path: @file_upload, # or with scope {@file_upload, %File{}}
        user: insert(:user)
      }
    end