在我的控制器中,我试图将我的create方法移动到后台进程中,因为它需要花费太多时间。我做不到。
我的选择1:
首先,我为控制器创建了一个自我方法,所以看起来像这样:
def create
MyController.delay.create_and_email(current_app_user)
respond_to do |format|
format.js {}
end
end
def create_and_email(user)
@user = AppUser.find_by(id: user.id)
@link_share = @user.link_shares.build(link_share_params)
@link_share.save
end
我不得不抛出current_app_user,因为self方法无法看到它,但我完全不知道如何处理我的link_share强参数,因为self方法没有看到 link_share_params 。我想我可以让这个选项工作,如果有人会指出我如何把强大的参数投入自我。控制器方法。
我的选择2:
然后我决定将整个动作移动到我的用户模型中,就像这样
位指示:
def create
@user = current_app_user
@user.delay.create_and_email(link_share_params)
respond_to do |format|
format.js {}
end
end
型号:
def create_and_email
link_share = self.link_shares.build(**params**)
link_share.save
end
再次,强大的障碍的麻烦。如何将我的参数导入模型?我应该将它们作为参数链接吗?
任何建议表示赞赏