Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 如何在exmachina工厂中使用arc EXTO文件?_Elixir_Ecto_Arc Ecto - Fatal编程技术网

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

Elixir 如何在exmachina工厂中使用arc EXTO文件?,elixir,ecto,arc-ecto,Elixir,Ecto,Arc Ecto,我有一个EXTO模式,它使用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

我有一个EXTO模式,它使用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
我该怎么做呢?

来自

上传定义文件响应Avatar.store/1,该文件接受 要么:

  • 本地文件的路径
  • 远程http或https文件的路径
  • 带有文件名和路径键的映射(例如,一个%Plug.Upload{})
  • 带有文件名和二进制键的映射(例如,%{filename:“image.png”,binary:})
  • 由上述文件格式之一和范围对象组成的两元组
我会:

@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