我是Web浏览器的新手,特别是ruby on rails。我正在开发一个Web界面,我在同一个方法上使用'Get'和'Post'请求。当我使用get方法并发送参数(如用户名和密码)时,它们在url中可见。因此,以下是我所做的。
form1.html.erb
<%= form_for :modify, :method => "post", :url => {:action => "method2"} do |f|%>
#code here to input username and password
<%=end%>
在我的routes.rb中,我将以下路由写入方法2:
post 'controller/method2'
get 'controller/method2'
当我输入username and password
并点击提交时,它会找到post 'method2'
并在控制器中执行代码,并显示method2.html.erb
,因为有get request
同样的方法,还有方法2的视图。
但是,我怀疑这不是正确的做法。我不希望密码可见。我知道我有两个选择,将密码存储在会话中或发送帖子请求。我不想在会话中存储,因为它不安全。当我写一个post方法时,页面会在用户尝试返回时到期。为了防止这些发生,我在控制器中使用与post相同的操作并获取,现在我没有在URL中看到任何可见的参数。
如果这不是正确的做法,请告诉我
答案 0 :(得分:3)
如果你想要一个可靠的方法来操纵用户和密码,我建议您浏览Ruby on Rails tutorial,这是一个很好的教程,它将向您介绍Rails编程的基础知识,包括使用安全的用户名/密码。
或者,你可以使用Devise,这是一个非常受欢迎的宝石。
我不会在不知道你在做什么的情况下尝试实施安全的用户/密码系统......
答案 1 :(得分:0)
在你的控制器中你应该有这个:
render 'controller/method2'
你应该在这条路径中有一个文件:
app/views/controller/method2.html.erb
您不需要有两条路线。