凤凰改变模型
Phoenix alter model
在 Phoenix 中更改 ecto 模型的正确方法是什么?
到目前为止,我已经创建了一个 Post
模型,其中包含一个 title
和一个 content
字符串字段。我将资源添加到路由器以创建和查看 Posts.
现在我想在我的模型中添加一个 author
字段。
到目前为止我所做的是:
我使用
创建了一个迁移
mix ecto.gen.migration add_author_to_post
在我插入的迁移文件中
alter table(:posts) do
add :author, :string
end
和 运行 与 mix ecto.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()
但是当我访问添加新Post的页面时,html.file中没有添加作者的字段。
(new.html.eex
文件由 mix phoenix.gen.html
生成)
PS:我确定这是一个基本的初学者问题。但由于 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>
在 Phoenix 中更改 ecto 模型的正确方法是什么?
到目前为止,我已经创建了一个 Post
模型,其中包含一个 title
和一个 content
字符串字段。我将资源添加到路由器以创建和查看 Posts.
现在我想在我的模型中添加一个 author
字段。
到目前为止我所做的是:
我使用
创建了一个迁移mix ecto.gen.migration add_author_to_post
在我插入的迁移文件中
alter table(:posts) do
add :author, :string
end
和 运行 与 mix ecto.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()
但是当我访问添加新Post的页面时,html.file中没有添加作者的字段。
(new.html.eex
文件由 mix phoenix.gen.html
生成)
PS:我确定这是一个基本的初学者问题。但由于 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>