更好的方法隐藏url中传递的参数比'params.except'?

时间:2015-09-03 07:22:29

标签: ruby-on-rails ruby url parameters

我对rails如何将参数传递给GET请求感到困惑。 我有一个带登录表单的rails应用程序。如果用户想要使用默认测试用户登录,他/她可以单击传递测试电子邮件和测试密码的链接。

以下效果很好:

<%= link_to "test login", login_path(:email => "test-email", :password => "test-password") %>

单击此按钮时,将加载登录页面,并预先填写电子邮件和密码字段。

问题是,电子邮件和密码都会显示在网址中。 昨天,这对我有用:

<%= link_to "test login", login_path(params.except(:email => "test-email", :password => "test-password")) %>

今天,在没有更改代码的情况下,当我使用params.except时,参数不会被传递。

那么,我如何确保参数将被传递但未在url中显示?

修改 问题解决了。看到我的回答。

1 个答案:

答案 0 :(得分:2)

我解决了。将以下内容添加到我的routes.rb

get 'test_login' => 'sessions#new', :email => "the test email", :password => "the test password"

所以我可以致电<%= link_to "test login", test_login_path %> 这将传输默认电子邮件和密码并预填充登录表单,但网址只有.../test_login

在我看来,这比params.except更聪明。