【发布时间】:2015-09-03 07:22:29
【问题描述】:
我真的很困惑 Rails 如何将参数传递给 GET 请求。 我有一个带有登录表单的 Rails 应用程序。如果用户想使用默认测试用户登录,他/她可以点击通过测试电子邮件和测试密码的链接。
以下效果很好:
<%= link_to "test login", login_path(:email => "test-email", :password => "test-password") %>
单击此按钮后,登录页面会加载预先填写的电子邮件和密码字段。
问题是,电子邮件和密码都会显示在 url 中。 昨天,这对我有用:
<%= link_to "test login", login_path(params.except(:email => "test-email", :password => "test-password")) %>
今天没改代码,我用params.except的时候参数不传。
那么,如何确保参数会被传递但不会显示在url中呢?
编辑: 问题解决了。看我的回答。
【问题讨论】:
-
GET 请求总是在 URL 中显示参数...因为您想使用默认用户名和密码单击然后创建自己的路由假设 (default_login) 并在该方法中使用默认值验证您的请求。
-
好吧,如上所述,它已经为我工作了。使用
params.except时,参数将被传递但不显示在url中(url:.../login?action=foo&controller=bar。我没有改变它但它停止工作了。
标签: ruby-on-rails ruby url parameters