我可以在rails上使用ruby获取和发布相同的方法吗?

时间:2012-07-18 15:28:19

标签: ruby-on-rails ruby-on-rails-3 http

我是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中看到任何可见的参数。

如果这不是正确的做法,请告诉我

2 个答案:

答案 0 :(得分:3)

如果你想要一个可靠的方法来操纵用户和密码,我建议您浏览Ruby on Rails tutorial,这是一个很好的教程,它将向您介绍Rails编程的基础知识,包括使用安全的用户名/密码。

或者,你可以使用Devise,这是一个非常受欢迎的宝石。

我不会在不知道你在做什么的情况下尝试实施安全的用户/密码系统......

答案 1 :(得分:0)

在你的控制器中你应该有这个:

render 'controller/method2'

你应该在这条路径中有一个文件:

app/views/controller/method2.html.erb

您不需要有两条路线。