我有一个名为Order的模型,我希望使用下面的一些参数启动
@order = Order.new(user_id: current_user.id, type_of_order: 'events', order_date: DateTime.now)
我收到错误
nil的未定义方法`id':NilClass
是否容易分配参数而不是像
那样做@order[:order_date] = DateTime.now
@order[user_id] = current_user.id
答案 0 :(得分:1)
首先,你得到的错误是由于你的错误
current_user
变量为nil
。我想你不想在没有用户的情况下订购,所以你应该修改代码的逻辑来避免这种情况。
其次,如果您希望能够批量分配参数,则必须在控制器中指定创建或修改可以一次分配参数的对象:
@order = Order.new(order_params)
...
private
def order_params
params.require(:order).permit(:order_date, :user_id)
end