简体   繁体   English

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

[英]Rails 3.2 passing parameters from one controller action to another

I'm trying to pass parameters (useremail,costprojects) from one controller action to another.我正在尝试将参数(useremail,costprojects)从一个控制器操作传递到另一个控制器操作。

Here is the controller code:这是控制器代码:

 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]
  ...

But, I get:但是,我得到:

wrong number of arguments (1 for 0)

The delay projects shows:延迟项目显示:

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

Thanks for the help!谢谢您的帮助!

If you want to pass some params while redirecting to another action, use the ActionController::Parameters:如果您想在重定向到另一个操作时传递一些参数,请使用 ActionController::Parameters:

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

http://api.rubyonrails.org/classes/ActionController/Base.html http://api.rubyonrails.org/classes/ActionController/Base.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM