我对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中显示?
修改 问题解决了。看到我的回答。
答案 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
更聪明。