Elixir 凤凰变身模型

Elixir 凤凰变身模型,elixir,phoenix-framework,ecto,Elixir,Phoenix Framework,Ecto,在凤凰城改变外胚层模型的正确方法是什么 到目前为止,我已经创建了一个Post模型,其中包含一个title和一个content字符串字段。我将资源添加到路由器以创建和查看帖子。 现在我想在我的模型中添加一个author字段。 到目前为止,我所做的是: 我创建了一个迁移 mix ecto.gen.migration add_author_to_post 在我插入的迁移文件中 alter table(:posts) do add :author, :string end 并使用mix-exto

在凤凰城改变外胚层模型的正确方法是什么

到目前为止,我已经创建了一个
Post
模型,其中包含一个
title
和一个
content
字符串字段。我将资源添加到路由器以创建和查看帖子。
现在我想在我的模型中添加一个
author
字段。 到目前为止,我所做的是:

我创建了一个迁移

mix ecto.gen.migration add_author_to_post
在我插入的迁移文件中

alter table(:posts) do
  add :author, :string
end
并使用
mix-exto.migrate
运行迁移
现在,该列在数据库中可见。
然后,我将fileld添加到模型文件中:

schema "posts" do 
  field :title, :string
  field :content, :string
  field :author, :string
  timestamps
end

@required_fields ~w(title content author)
@optional_fields ~w()
但是当我访问页面添加新文章时,html.file中没有可添加作者的字段。 (文件
new.html.eex
mix phoenix.gen.html
生成)


附言:我相信这是一个基本的初学者问题。但是由于phoenixcommunity非常小,这个问题可能对许多其他人有用

模板不是基于模型中定义的当前模式。它基于您通过的
mix phoenix.gen.html
任务

您需要更新模板,以便在
web/templates/post/form.html.eex

  <div class="form-group">
    <label>Author</label>
    <%= text_input f, :author, class: "form-control" %>
  </div>

作者

Ahh是。。当然这太简单了。我注意到我不得不使用
:author\u id
插入
:author
@0xAffe如果是这种情况,那么您当前的模式与您在问题中发布的模式不匹配。