创建League
时,我还尝试创建名为UsersLeagues
的联接关联。这是我目前的尝试:
def changeset(struct, params \\ %{}) do
struct
|> cast(params, [:name])
|> validate_required([:name])
|> put_assoc(:users_leagues,UsersLeagues.changeset(%UsersLeagues{}, user_id: 1, league_id: 1, commissioner: true))
end
当我尝试使用该变更集创建时,我收到此错误。 expected params to be a :map, got: [user_id: 1, league_id: 1, commissioner: true]
我不确定它要告诉我什么?
同样,我正在尝试创建一个模型,并在该过程中创建一个连接表。
答案 0 :(得分:1)
def changeset(struct, params \\ %{}) do
struct
|> cast(params, [:name])
|> validate_required([:name])
|> put_assoc(:users_leagues,UsersLeagues.changeset(%UsersLeagues{user_id: 1, league_id: 1, commissioner: true}))
end
试试这个
Changeset用于在将数据插入数据库之前验证数据。
答案 1 :(得分:0)
UserLeagues
的第二个参数应该是一个地图,但它是一个关键字列表。将倒数第二行更改为:
|> put_assoc(:users_leagues,UsersLeagues.changeset(%UsersLeagues{}, %{user_id: 1, league_id: 1, commissioner: true}))