Elixir 如何使用ecto和guardian建立关联
不知何故,我无法在《卫报》的《凤凰城/星外》中使用此功能: 会议控制器#创建 会合 如何插入与相关Elixir 如何使用ecto和guardian建立关联,elixir,phoenix-framework,ecto,Elixir,Phoenix Framework,Ecto,不知何故,我无法在《卫报》的《凤凰城/星外》中使用此功能: 会议控制器#创建 会合 如何插入与相关用户的会议?调用build\u assoc可正确设置user\u id,但调用changeset可再次删除关联。用户能够成功地进行身份验证。这里缺少什么?请看,changeset不直接包含相关属性,而是通过changeset.data 我们将从changeset.data中提取其他字段,包括用户id 因此,一旦插入,关联将被正确设置 见此,changeset不直接包含相关属性,而是通过changes
用户的会议
?调用build\u assoc
可正确设置user\u id
,但调用changeset
可再次删除关联。用户能够成功地进行身份验证。这里缺少什么?请看,changeset
不直接包含相关属性,而是通过changeset.data
我们将从changeset.data中提取其他字段,包括用户id
因此,一旦插入,关联将被正确设置 见此,changeset
不直接包含相关属性,而是通过changeset.data
我们将从changeset.data中提取其他字段,包括用户id
因此,一旦插入,关联将被正确设置 是否应该是cast(params,[:title,:description,:user])
?是否应该是cast(params,[:title,:description,:user])
?
changeset = case Guardian.Plug.authenticated?(conn) do
true ->
Guardian.Plug.current_resource(conn) # == existing user
|> build_assoc(:meetings) # successfully builds a meeting with user_id
|> Meeting.changeset_with_user(meeting_params) # removes user_id
_ ->
Meeting.changeset(%Meeting{}, meeting_params)
end
schema "meetings" do
field :title, :string
field :description, :string
belongs_to :user, User
end
def changeset(model, params \\ %{}) do
model
|> cast(params, [:title], [:description])
end
def changeset_with_user(model, params \\ %{}) do
model
|> changeset(params)
|> assoc_constraint(:user)
end