保存到页面在Rails服务器上重定向时生成的可变参数

问题描述:

我有一个用户签名的Echosign pdf,一旦发生这种情况,用户将被重定向到一个url,它具有?documentKey = 3r3t33hhjijij。我不生成密钥,只有在pdf签名后才生成密钥。这个密钥对于每个签名的pdf都不相同。保存到页面在Rails服务器上重定向时生成的可变参数

我可以在我的控制台看:

Started GET "/webpage?documentKey=3r3t33hhjijij" for ip address .... 
Processing by Controller#index as HTML 
    Parameters: {'documentKey"=>3r3t33hhjijij"}... 

我不知道如何登录本/进入这个变量,因为PDF签订后,不经过我调用API Echosign方法它发生。

感谢您提前提供任何帮助。

我用Rails 3.2.8

在控制器的index动作,你可以访问使用params[:key]传过来的查询字符串的任何参数,例如params[:documentKey]

所以下面将输出到控制台:

@docKey = params[:documentKey] 
logger.info "Key: #{@docKey}" 

编辑

但如果是与路由选择的问题,定义如下(我们称之为控制器mypdf和动作echosign) 。将以下行添加到您的config/routes.rb

match 'mypdf/echosign' => 'mypdf#echosign', :as => 'echosign' 

让我们假设用户被定向到您网站上的/echosign?documentKey=ksdjfshdfjh

在您的控制器

所以,如果被定义如下:

class MypdfController < ApplicationController 
    def echosign 
    logger.info "Reached echosign" 
    logger.info "Document key is #{params[:documentKey]}" 
    redirect_to(root_url) 
    end 
end 

那么当用户被定向到页面签上自己的PDF后,你应该看到:

Started GET "/echosign?documentKey=ksdjfshdfjh" for 127.0.0.1 at 2013-02-14 23:27:49 -0700 
    Processing by MypdfController#echosign as HTML 
    Parameters: {"documentKey"=>"ksdjfshdfjh"} 
Reached echosign 
Document key is ksdjfshdfjh 
+0

这不是工作,我不明白为什么它不是。我已经在多个控制器中试过了,它说它是零。这个params [:documentKey]是否在某个时候被清除?谢谢您的帮助。 – myData 2013-02-12 09:51:46

+0

未定义的方法'[]'为零:NilClass – myData 2013-02-12 10:49:13

+0

'params'不会被Rails清除。它看起来像documentKey *不是作为参数传递给Rails的。在控制器中,如果您插入语句“logger.info”#{params.inspect}“',那么您在控制台中看到什么? – mccannf 2013-02-12 11:25:47