2017-02-11 2 views
1

ためcast_attachmentsためのチェンジセット内の空のエラーは、私は以下のモデルを持っているとイメージのために私がアップロードいない場合句マッチング:ファイルアップロード

defmodule Chemical.Info用アークモジュールを使用しています、 使用Chemical.Webを行います:コントローラ

でモデル

schema "infos" do 
    field :title, :string 
    field :shortdesc, :string 
    field :longdesc, :string 
    field :images, Chemical.ImageUploader.Type 
    field :regions, :string 
    field :startdate, :date 
    field :enddate, :date 
    field :status, :string 
    field :createdby, :string 
    field :approvedby, :string 

    timestamps() 
end 

@required_fields ~w(title shortdesc startdate enddate) 
@optional_fields ~w(longdesc regions status createdby approvedby) 
@required_file_fields ~w() 
@optional_file_fields ~w(images) 

    def changeset(model, params \\ :empty) do 
    model 

    |> cast(params, @required_fields, @optional_fields) 
    |> cast_attachments(params, @required_file_fields, @optional_file_fields) 

end 

新しい機能

def new(conn, _params) do 
    changeset = Info.changeset(%Info{}) 
    render conn, "new.html", changeset: changeset 
end 

何case節のマッチングを新しいフォームを返さない/新しいアクションにアクセスするとき、私はcast_attachments関数呼び出しで、次のエラーを取得しています:もし

空私はcast_attachments行を削除し、新しいフォームを表示します。 弧のバージョンは0.6.0で、arc_ectoは0.5.0です。 ローカルストレージを使用しているため、Arcによって生成されたデフォルトのアップローダです。

答えて

1

Ecto 2.0以来、:emptyparamsとして渡すことは、空のマップ(%{})のために推奨されません。 arc_ecto 0.5.0は既に警告を発行する代わりに:emptyの送信をもう許可していないようです。あなたはparamsのデフォルト値として%{}:emptyを変更する必要があります。

def changeset(model, params \\ :empty) do 

- >

def changeset(model, params \\ %{}) do 
関連する問題