我是Rails的新手。请原谅。
我正在尝试在我的控制器中实现“after_create”,以便将数据放入数据库中的不同表中。
after_create :create_order_confirm
它会调用这个。
def create_order_confirm
my_order_confirm = OrderConfirm.new(:order_id => @order.id.to_s)
my_order_confirm.save
end
这些是我的完整控制器。(排除不相关部分..)
class OrdersController < ApplicationController
before_action :set_order, only: [:show, :edit, :update, :destroy]
after_create :create_order_confirm
# GET /orders
# GET /orders.json
def index
@orders = Order.all
end
# GET /orders/1
# GET /orders/1.json
def show
render "show"
end
# GET /orders/new
def new # Error -> happen.
@order = Order.new
end
...
...
private
# Use callbacks to share common setup or constraints between actions.
def set_order
@order = Order.find(params[:id])
end
def create_order_confirm
my_order_confirm = OrderConfirm.new(:order_id => @order.id.to_s)
my_order_confirm.save
end
end
看来我的新方法没有被调用。
@order = Order.new
如果我删除 'after_create :create_order_confirm' 这一行。它工作正常。有人能解释一下吗?以及如何使用“after_create”?我只希望在调用“创建”函数时调用它们。
编辑
将 order 更改为 @order 并没有解决问题。