Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 3.2将参数从一个控制器动作传递到另一个控制器动作_Ruby On Rails - Fatal编程技术网

Ruby on rails Rails 3.2将参数从一个控制器动作传递到另一个控制器动作

Ruby on rails Rails 3.2将参数从一个控制器动作传递到另一个控制器动作,ruby-on-rails,Ruby On Rails,我试图将参数(useremail,costprojects)从一个控制器动作传递到另一个控制器动作 以下是控制器代码: def pdfemail costprojects = Costproject.find(params[:costproject_ids]) useremail = current_user.email CostprojectsController.delay.pdfemail2(params: { useremail: useremail, cost

我试图将参数
(useremail,costprojects)
从一个控制器动作传递到另一个控制器动作

以下是控制器代码:

 def pdfemail
    costprojects = Costproject.find(params[:costproject_ids])
    useremail = current_user.email
    CostprojectsController.delay.pdfemail2(params: { useremail: useremail, costprojects: costprojects })
    redirect_to :back
    flash[:notice] = 'An Email containing a PDF has been sent to you!'
  end

  def self.pdfemail2
    @useremail = params[:useremail]
    @costprojects = params[:costprojects]
  ...
但是,我得到:

wrong number of arguments (1 for 0)
延迟项目显示:

object: !ruby/class 'CostprojectsController'
method_name: :pdfemail2
args:
- :params:
    :useremail: somebody@gmail.com
    :costprojects:
    - !ruby/ActiveRecord:Costproject
      attributes:
        id: 8
...

谢谢你的帮助

如果要在重定向到其他操作时传递一些参数,请使用ActionController::Parameters:

def search
  redirect_to :index, params: { query: params[:q] }
end

不,操作不是那样工作的,它们不应该直接调用。如果您需要发送电子邮件的逻辑,并且希望在后台运行它,则创建一个作业。