2012-07-18 66 views
0

我是一般的網頁開發人員和Ruby on Rails的新手。我正在開發一個Web界面,我在同一個方法中使用'Get'和'Post'請求。當我使用get方法併發送參數(如用戶名和密碼)時,它們在url中可見。因此,下面是我所做的。我可以在rails上使用ruby獲取併發布相同的方法嗎?

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

在你的控制器,你應該有這樣的:

render 'controller/method2' 

而且你應該有一個文件在此路徑中:

app/views/controller/method2.html.erb 

您不需要有兩條路由。

+0

我已經呈現了method2.html.erb,一切工作正常。但我不熟悉我這樣做的方式,我認爲有更好的方法可以做到與citraL在下面的答案中一樣 – user1455116 2012-07-18 15:40:32

3

如果你想操縱用戶&密碼了堅實的方法,以正確的方式,我建議你去通過Ruby on Rails tutorial,它是一個優秀的教程,它會學習你從Rails編程開始的基礎知識,包括安全的用戶名/密碼使用。

或者,您可以使用Devise,這是一個非常受歡迎的寶石用於此目的。

我不會試圖實現一個安全的用戶名/密碼系統,而無需真正瞭解你在做什麼?

+0

我目前工作的項目是用於內部目的,我被告知目前我不需要擔心安全問題。所以我只是想完成它。但是,我會盡力實現你所說的儘快。謝謝 – user1455116 2012-07-18 15:38:49

相關問題