保存到页面在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
这不是工作,我不明白为什么它不是。我已经在多个控制器中试过了,它说它是零。这个params [:documentKey]是否在某个时候被清除?谢谢您的帮助。 – myData 2013-02-12 09:51:46
未定义的方法'[]'为零:NilClass – myData 2013-02-12 10:49:13
'params'不会被Rails清除。它看起来像documentKey *不是作为参数传递给Rails的。在控制器中,如果您插入语句“logger.info”#{params.inspect}“',那么您在控制台中看到什么? – mccannf 2013-02-12 11:25:47