Ruby on rails 创建带有延迟作业的操作

Ruby on rails 创建带有延迟作业的操作,ruby-on-rails,ruby-on-rails-4,delayed-job,strong-parameters,Ruby On Rails,Ruby On Rails 4,Delayed Job,Strong Parameters,在我的控制器中,我试图将我的create方法移动到后台进程中,因为它花费了太多的时间。我弄不好 我的选择1: 首先,我为我的控制器创建了一个self方法,看起来像这样: def create MyController.delay.create_and_email(current_app_user) respond_to do |format| format.js {} end end def create_and_email(user)

在我的控制器中,我试图将我的create方法移动到后台进程中,因为它花费了太多的时间。我弄不好

我的选择1:

首先,我为我的控制器创建了一个self方法,看起来像这样:

  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
由于self方法看不到当前的应用程序用户,我不得不加入,但我完全不知道如何处理我的link\u share强参数,因为self方法看不到link\u share\u参数。如果有人能告诉我如何在自我中加入强大的参数,我想我可以让这个选项起作用。控制器方法

我的选择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
再一次,强参数的麻烦。如何将参数导入模型?我是否应该将它们作为论点进行链接


任何建议

参数对于模型也应该没有问题,在第二个选项中抛出的错误是什么?作业应用程序用户#创建和发送电子邮件(id=15)失败(之前尝试了0次),使用ActiveModel::ForbiddenAttribute错误:ActiveModel::ForbiddenAttribute错误