我的问题:用户拥有帐户但未登录即创建新订单后,该订单将不会通过所使用的电子邮件连接到该帐户。
但是,当用户没有帐户时,他们会使用example@example.com创建一个订单---,然后使用example@example.com进行注册,这些订单将连接并显示。
我希望这样,当用户已经有一个帐户,但是随后在未登录的情况下使用相同的电子邮件创建帐户的订单时,该订单将连接。
我的user.rb模型,可以建立连接:
after_create :connect_orders
def connect_orders
Order.where(email: self.email).update_all(buyer_id: self.id)
end
因此,当电子邮件相同时,它将连接。
我已针对已批准的devise用户帐户对此进行了测试,并使用相同的电子邮件创建了一个订单,然后该订单不会显示。就像一旦已经有一个帐户一样,该代码将无法使用。除非,代码是否不能像这样设置,我在哪里出错了?
答案 0 :(得分:2)
您在df.to_csv('r1.csv', columns=['Comment', 'EndTimeLocalized', 'Id', 'StartTimeLocalized'])
模型中创建了after_create
回调。这意味着连接订单的代码仅在创建用户后才运行。如果您创建订单并且匹配的用户已经存在,它将不会运行。
如果要在创建订单时自动将新订单连接到现有用户,则需要为User
模型添加回调。可能会发生以下情况:
Order