【发布时间】:2016-09-17 06:36:45
【问题描述】:
所以这是我的问题:我有两个架构:表格和订单
schema "tables" do
field :table_number, :string
field :current_order, :integer
has_many :orders, Pos1.Order
schema "orders" do
field :number_of_customers, :integer
field :completed, :boolean, default: false
belongs_to :table, Pos1.Table
当我创建一个新订单时,控制器只是插入变更集并重定向到显示。
def create(conn, %{"order" => order_params}) do
changeset = conn.assigns[:table]
|> build_assoc(:orders)
|> Order.changeset(order_params)
case Repo.insert(changeset) do
{:ok, _order} ->
conn
|> put_flash(:info, "Order created successfully.")
|> redirect(to: table_order_path(conn, :show, conn.assigns[:table], _order))
{:error, changeset} ->
render(conn, "new.html", changeset: changeset)
end
end
但是,是否可以将创建订单的 id 插入到 parent(table) 到 current_order 字段中?
此外,当 order.completed 更改为“true”值时,如何从 current_order(表中)中删除 id?
基本上,我正在研究功能,如果表格有 current_order - 它会在点击时显示它。如果没有,那么它会重定向到一个页面来创建订单。并创建一个订单,应分配表中的 current_order。
【问题讨论】:
-
离题:我还建议将 Elixir 风格指南应用到您的代码中:github.com/niftyn8/elixir_style_guide 它让其他人更容易阅读。甚至还有一个工具可以为您检查并报告所有问题:github.com/rrrene/credo您可以编辑您的问题并正确格式化代码以防其他人阅读它:)
-
@tkowal 感谢您的链接!我去看看