2
我有模式銀行和貨幣與多對多關聯。我創建了一個表格銀行與選擇包含貨幣。外生變更和多對多關聯「無效」錯誤
bank.ex
schema "banks" do
field :name, :string
many_to_many :currencies, App.Currency, join_through: "banks_currencies"
end
@required_fields ~w(name)
@optional_fields ~w()
def changeset(model, params \\ %{}) do
model
|> cast(params, @required_fields, @optional_fields)
|> cast_assoc(:currencies)
end
form.html.ex
<%= multiple_select(form, :currencies, @currencies) %>
問題是:當我提交表單與選定的一些貨幣,然後變更集返回 「無效」 的錯誤。我模擬了在IEX:
iex(8)> App.Bank.changeset bank, %{"currencies" => ["1"]}
#Ecto.Changeset<action: nil, changes: %{},
errors: [currencies: {"is invalid", [type: {:array, :map}]}],
data: #App.Bank<>, valid?: false>
我已經安裝了最新的鳳凰,最近從1.1.4升級到1.2