在 url 中隐藏传递的参数比 'params.except' 更好的方法?
better way to hide passed parameters in url than 'params.except'?
我真的很困惑 rails 如何将参数传递给 GET 请求。
我有一个带有登录表单的 rails 应用程序。如果用户想用默认的测试用户登录,he/she 可以点击 link 来传递测试电子邮件和测试密码。
以下效果很好:
<%= 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中传递而不显示?
编辑:
问题解决了。看我的回答。
我解决了。在我的 routes.rb
中添加了以下内容:
get 'test_login' => 'sessions#new', :email => "the test email", :password => "the test password"
所以我可以打电话给 <%= link_to "test login", test_login_path %>
这将传输默认电子邮件和密码并预填写登录表单,但 url 将只是 .../test_login
在我看来,这比 params.except
聪明多了。
我真的很困惑 rails 如何将参数传递给 GET 请求。 我有一个带有登录表单的 rails 应用程序。如果用户想用默认的测试用户登录,he/she 可以点击 link 来传递测试电子邮件和测试密码。
以下效果很好:
<%= 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中传递而不显示?
编辑: 问题解决了。看我的回答。
我解决了。在我的 routes.rb
中添加了以下内容:
get 'test_login' => 'sessions#new', :email => "the test email", :password => "the test password"
所以我可以打电话给 <%= link_to "test login", test_login_path %>
这将传输默认电子邮件和密码并预填写登录表单,但 url 将只是 .../test_login
在我看来,这比 params.except
聪明多了。