在Phoenix/Elixir中向结构添加字段

在Phoenix/Elixir中向结构添加字段,elixir,phoenix-framework,Elixir,Phoenix Framework,我想向从操作返回的结构添加字段或键: def show(conn, _) do my_struct = Repo.get(MyStruc, 123) render(conn, my_item: Map.put(my_struct, :aaa, "fdsfdsfds")) end 我只需要“show”中的字段。 错误: key :aaa not found in: MyStruc {__meta__: .......... 我可以将其作为单独的值返回,但我希望将其嵌入MyStruc

我想向从操作返回的结构添加字段或键:

def show(conn, _) do
   my_struct = Repo.get(MyStruc, 123)
   render(conn, my_item: Map.put(my_struct, :aaa, "fdsfdsfds"))
end
我只需要“show”中的字段。 错误:

key :aaa not found in: MyStruc {__meta__: ..........
我可以将其作为单独的值返回,但我希望将其嵌入MyStruct中

defmodule MyStruct do
  use Ecto.Schema
  schema "my_struct" do
    ... all your fiels
    field :aaa, :string, virtual: true
  end
end
然后在代码中

def show(conn, _) do
  my_struct = Repo.get(MyStruc, 123)
  render(conn, my_item: %MyStruct{my_struct | aaa: "fdsfdsfds"})
end

您的my\u item:item:Map.put出现错误。。只能以这种方式将键用作原子
key::value
,而不能使用任何其他组合。这只是一个bug吗?是什么代码抛出了这个错误?它不可能是问题中当前的代码。@Dogbert,是的,它是。@Dogbert,不再是了。@Torito它一定是模板中的一些代码。您是否可以发布完整的错误消息,包括stacktrace?